Форум программистов, компьютерный форум CyberForum.ru

Сравнивание строк - C++

Восстановить пароль Регистрация
 
Votming
0 / 0 / 0
Регистрация: 22.09.2013
Сообщений: 16
17.12.2013, 17:07     Сравнивание строк #1
Всем привет. В программу у меня вводится слово, заранее длинна слова не известна. Мне нужно проверить количество согласных в этом слове и занести это в переменную.
Например, если пользователь вводит слово "Привет" программа должна занести в переменную "х" число 4.
Я создал дополнительную строку, вот такую:
C++
1
string word="йЙцЦкКнНгГшШщЩзЗхХфФвВпПрРлЛдДжЖчЧсСмМтТьЬбБъЪ";
Я хочу как-нибудь пробежаться по первой строке и проверить её на соответствие с каждой буквой второй строки. Код для такой операции я вот написать и не могу. Я начинаю писать циклы, но потом не знаю как начать сравнивать отдельные буквы первой строки со второй. Не подскажите?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.12.2013, 17:07     Сравнивание строк
Посмотрите здесь:

C++ Сравнивание указателей
C++ сравнивание строк
C++ Сравнивание 3-х чисел
Сравнивание и присоединение строк C++
C++ Сравнивание числа с числом из файла
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ZeR_0
116 / 108 / 37
Регистрация: 30.01.2013
Сообщений: 297
17.12.2013, 17:13     Сравнивание строк #2
Не проще
C++
1
2
string word="АаЕеЁёИиОоУуЫыЭэЮюЯя";
word2[i] == word[j] //В цикле соответственно. Функция strlen() вам в помощь
Если нашел в введенной строке совпадение с этой, то плюсует счетчик выходит из цикла поиска.
Описание функции STRLEN()
egor2116
 Аватар для egor2116
337 / 368 / 42
Регистрация: 20.01.2013
Сообщений: 1,100
17.12.2013, 17:19     Сравнивание строк #3
Код для такой операции я вот написать и не могу.
C++
1
2
3
4
5
6
7
8
std::string word = "qweerytiup vnxc c zz asl k jsdfg' frgjfdklgjkleg";
char find = 'z';
int count = 0;
for(int i = 0; i < word.size(); ++i)
    if(word[i] == find)
      ++count;
 
std::cout << "Character " << find << " was find " << count;
Tulosba
:)
Эксперт C++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
17.12.2013, 17:19     Сравнивание строк #4
std::count_if + свой предикат для выяснения "согласности" буквы.
egor2116
 Аватар для egor2116
337 / 368 / 42
Регистрация: 20.01.2013
Сообщений: 1,100
17.12.2013, 17:21     Сравнивание строк #5
C++
1
2
3
4
5
6
7
8
9
std::string word1 = "qweerytiup vnxc c zz asl k jsdfg' frgjfdklgjkleg";
std::string word2 = ";skjglkrgfior jsodif jsdlfj wlef 234 932rlkdfjdskl j43";
 
int count = 0;
for(int i = 0; i < word1.size(); ++i)
   for(int j = 0; j < word2.size(); ++j)
    if(word1[i] == word2[j])
      ++count;
std::cout << count;
outoftime
║XLR8║
 Аватар для outoftime
505 / 427 / 33
Регистрация: 25.07.2009
Сообщений: 2,297
17.12.2013, 17:31     Сравнивание строк #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <algorithm>
#include <string>
 
int main()
{
    std::string raw = "dasfhasdfchnaunfaynhfachqauifnhwcquifyhwiuuwynhfajyfh",
        vowels = "aeiouy";
        
    int x = raw.size() - std::count_if(raw.begin(), raw.end(), 
        [&vowels](const char &letter){ return vowels.find(letter) != std::string::npos; }
    );
    
    return EXIT_SUCCESS;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.12.2013, 17:44     Сравнивание строк
Еще ссылки по теме:

C++ сравнивание двух чисел
C++ Сравнивание строк в структуре
C++ Сравнивание CLASS1* с CLASS2

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

Или воспользуйтесь поиском по форуму:
Votming
0 / 0 / 0
Регистрация: 22.09.2013
Сообщений: 16
17.12.2013, 17:44  [ТС]     Сравнивание строк #7
Спасибо всем большое, буду разбираться!
Yandex
Объявления
17.12.2013, 17:44     Сравнивание строк
Ответ Создать тему
Опции темы

Текущее время: 08:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru