С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 20, средняя оценка - 4.85
san4elllo
1 / 1 / 0
Регистрация: 08.11.2009
Сообщений: 36
#1

Найти символ строки - C++

24.01.2011, 20:12. Просмотров 2696. Ответов 31
Метки нет (Все метки)

Помогите пожалуйста выполнить задание

В С++ требуется Найти символ строки который встречается в строке только один раз. То есть, если в Edit ввести '33n222ab' то программа должна выдать символы n,a,b. Если в строке нет символа повоторяющегося только один раз, вывести соответствующее сообщение.

Заранее спасибо))))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.01.2011, 20:12
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти символ строки (C++):

Найти символ первой строки, который первым не совпал с одним из символов второй строки. Вывести слово, в которое входит этот символ - C++
Заданы 2 строки, состоящие из слов, разделенных пробелами. Определить местоположение символа первой строки, который первым не совпал с...

Вывести строки, в которых символ «*» встречается не менее 2 раз и заменить символ «*» на символ «_» - C++
День добрый. Имеется условие лабы. Написать программу, в которой с клавиатуры вводится до 10 символьных строк. Вывести строки, в...

Каждый символ строки заменить на следующий за ним, а последний символ строки заменяеть первым - C++
я написал код но не могу разобраться. вот дано : ---------------------------------------------------------- В текстовом файле fin.txt...

Найти символ перехода строки - C++
пытаюсь удалить комментарии - не выходит глючит нахождение "\n" Help!!! string deleteComments(string str) { unsigned lenght =...

Найти встроке первый символ, равный одному из символов другой строки - C++
const char* my_strpbrk(const char* str, const char* chars); char* my_strpbrk( char* str, const char* chars); Найти в...

Создать функцию, которая на вход получает строку символов и один символ, функция печатает те слова строки, в которых встречается этот символ. - C++
Здраствуйте, вы не могли б мне помоч, у меня проблема з задачей, в коде постоянно выдаёт ошыбки на мове С, , и это еще перевести в...

31
volovzi
267 / 169 / 8
Регистрация: 14.03.2010
Сообщений: 501
24.01.2011, 20:20 #2
san4elllo, с радостью поможем. В чём проблема?
0
san4elllo
1 / 1 / 0
Регистрация: 08.11.2009
Сообщений: 36
24.01.2011, 20:23  [ТС] #3
Проблема в том, что я совсем не знаю с чего начать, как правильно составить цикл
0
asics
Freelance
Эксперт С++
2850 / 1785 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
24.01.2011, 20:30 #4
C++
1
2
3
4
5
6
7
8
9
10
for(int i = 0; i < str.length(); ++i)
{
   key = true;
   for(int j = 0; j < str.length(); ++j)
       if(i != j && str[i] == str[j])
          key = false;
 
   if(key)
      std::cout << str[i] << ',';
}
0
JULIK-
18 / 18 / 2
Регистрация: 24.01.2011
Сообщений: 120
24.01.2011, 20:35 #5
вот держите
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include "stdafx.h"     
#include <iostream>     
#include <conio.h>      
#include <math.h>       
#include <windows.h>    
using namespace std;    
const int b=20;
void main()
{
 
     SetConsoleCP(1251);                  // Подключение русского языка
     SetConsoleOutputCP(1251);
char a[b],c[b];
int i,flag=0;
for(i=0;i<b;i++)
{
    a[i]=_getche();
if(a[i]==13)
break;
}
for(i=0;i<b;i++)
{
    c[i]=a[i];
}
int j;
cout<<"\n";
for(j=0;j<b;j++)
{
for(i=0;i<b;i++)
{
    if(a[i]==c[j] && i!=j)
    flag=1;
}if(flag!=1)
cout<<c[j];
flag=0;
}
getch();                
}
1
asics
Freelance
Эксперт С++
2850 / 1785 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
24.01.2011, 20:39 #6
Или так
C++
1
2
3
4
5
std::for_each(str.begin(), str.end(), [](char a_)
{
   if(std::count(str.begin(), str.end(), a_) == 1)
      std::cout << a_ << ',';
});
0
san4elllo
1 / 1 / 0
Регистрация: 08.11.2009
Сообщений: 36
24.01.2011, 20:50  [ТС] #7
asics,

C++
1
2
3
4
5
6
7
8
9
for(int i = 0; i < str.length(); ++i)
{
   key = true;
   for(int j = 0; j < str.length(); ++j)
       if(i != j && str[i] == str[j])
          key = false;
 
   if(key)
      std::cout << str[i] << ',';
Я так понимаю это на консоли написано? Объясните пожалуйста что такое key = true
0
asics
Freelance
Эксперт С++
2850 / 1785 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
24.01.2011, 20:55 #8
Цитата Сообщение от san4elllo Посмотреть сообщение
Объясните пожалуйста что такое key = true
См. тут.
0
san4elllo
1 / 1 / 0
Регистрация: 08.11.2009
Сообщений: 36
24.01.2011, 21:12  [ТС] #9
А нельзя ли както это написать попроще? Применимо к обыкновенному edit, без консолей и премудростей?))) Иначе у препода будут глаза по пять рублей на код моей программы....
0
volovzi
267 / 169 / 8
Регистрация: 14.03.2010
Сообщений: 501
24.01.2011, 21:30 #10
san4elllo, помогу, если сначала напишешь свой вариант.
0
JULIK-
18 / 18 / 2
Регистрация: 24.01.2011
Сообщений: 120
24.01.2011, 21:51 #11
san4elllo, ну я же вам написал, по моему всё просто

Добавлено через 5 минут
san4elllo, а чем вас не устраивает мой вариант?
0
Rusl_v
13 / 12 / 1
Регистрация: 22.12.2010
Сообщений: 67
24.01.2011, 21:52 #12
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include "stdafx.h"
#include <iostream>
#include <cstdio>
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL,"Russian");
    const int n=100;
    char str[n],*p,*r;
    r=str;
    p=str;
    cout<<"Введите строку:";
    gets(str);
    for(int x=0;*p;x++){
        if(p==r) r++;
        while(*p!=*r&&*r||p==r){
            r++;
        }
        if (!*r) cout<<*p;
        p++;
        r=str;
    }
    system("pause");
    return 0;
}
Вроде работает но потести чуток,если нужны будут комменты к коду могу дать.
Облегчил как мог
1
volovzi
267 / 169 / 8
Регистрация: 14.03.2010
Сообщений: 501
24.01.2011, 21:57 #13
JULIK-, Rusl_v, ваши варианты плохи тем, что совершенно нечитаемы.
0
Rusl_v
13 / 12 / 1
Регистрация: 22.12.2010
Сообщений: 67
24.01.2011, 22:00 #14
Цитата Сообщение от volovzi Посмотреть сообщение
JULIK-, Rusl_v, ваши варианты плохи тем, что совершенно нечитаемы.
Всё ясно написано,если ты учил Си++ то ты должен разобраться с такими простыми условиями!
Ща выложу комменты к коду
P.S.Зато уложился всего в 18 строчек
0
asics
Freelance
Эксперт С++
2850 / 1785 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
24.01.2011, 22:03 #15
Rusl_v, Да никто и не говорот, что код сложный или его кто-то не понимает, просто он не логичный.
0
24.01.2011, 22:03
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.01.2011, 22:03
Привет! Вот еще темы с ответами:

Найти слово, один и тот же символ в котором встречается максимальное число раз (в рамках всей строки) - C++
состоит из слов, разделенных одним или несколькими пробелами. Найти слово, один и тот же символ в котором встречается максимальное число...

Найти слово, один и тот же символ в котором встречается максимальное число раз (в рамках всей строки). - C++
Помогите пожалуйста! Строка состоит из слов, разделенных одним или несколькими пробелами.(может начинаться несколькими пробелами и...

(Ошибка)Находим первый символ строки 1,который не совпадает ни с одним символом из строки 2 - C++
Данный кусок программы не выполняет должной функции.Вроде бы всё правильно, но вместо символа &quot;b&quot; выдаёт символ &quot;i&quot;.подскажите где ошибка. ...

Как переместить символ окончания строки /0 в конец строки? - C++
Это мне нужно сделать, чтоб не появлялись кракозябры. Причем сделать для всех строк подключенного к программе файла.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.