Как сравнить две строки?
Пожалуйста подскажите, как сделать, чтобы программа заработала. В данный момент, чтобы не ввел, отвечает «Неверно». Видимо, напутал что-то с 10-й строкой. Или проблема шире?? Заранее спасибо!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
#include #include #include int main() { setlocale(LC_ALL,"russian");//русский язык char str[100]=""; printf("Столица России: "); gets(str); if(str=='Moscow') puts("Молодец\n"); else puts("Неверно\n"); system("pause"); return 0; }
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Сравнить две введённых строки без использования strcmp
Помогите пожалуйста. Мне нужно написать программу, в котором нужно сравнить две введённые строки.
Сравнить две строки, присвоить схожие слова переменной и вывести на экран
Нужно сравнить две строки char, слова, которые присутствуют в каждой строке присвоить третьей.
Сравнить две текстовые строки и вывести на экран различающиеся символы вместе с их номерами
Напишите функцию, которая сравнивает две текстовые строки и выводит на экран различающиеся символы.
Сравнить две даты
Всем привет, подскажите плиз чайнику как реализовать следующую задачку: пользователь должен ввести.
45 / 45 / 40
Регистрация: 31.08.2015
Сообщений: 147
Строки так не сравниваются,
Сообщение от Semen161
if(str==’Moscow’)
используйте функцию
int strcmp( const char * string1, const char * string2 );
11125 / 6083 / 1663
Регистрация: 18.10.2014
Сообщений: 15,285
Сообщение от Semen161
Или проблема шире??
Во-первых, у вас в программе все строковые литералы — в двойных кавычках. То есть вы в курсе, что в языке С строковые литералы записываются именно так. Почему тогда вы именно ‘Moscow’ записали в одиночных кавычках? Расскажите нам логический ход ваших мыслей, приведших вас к решению использовать именно одиночные кавычки для ‘Moscow’ .
Во-вторых, в языке С нет средств сравнения строк уровня ядра языка. Сравнение строк в С делается только через библиотечные функции.
В-третьих, компилятор орал во все горло, указывая вам на ошибки в вашей программе. Почему вы проигнорировали его диагностические сообщения?
Сравните две строки в C++
В этом посте мы обсудим, как сравнивать две строки в C++.
1. Использование string::compare
The string::compare Функция сравнивает значение строки с указанной последовательностью символов. Указанная последовательность может быть другой строкой или указателем на массив символов. Он возвращает целочисленное значение, указывающее связь между двумя строками.
Нулевой код состояния указывает, что строки равны. Ненулевой код состояния может быть положительным или отрицательным, указывая на то, что сравниваемая строка длиннее или короче указанной строки соответственно. Это показано ниже:
Сравнение строк.
Библиотека <cstring> предлагает пользователю готовые функции, выполняющие сравнение строк. Далее будут рассмотрены функции, выполняющие посимвольное сравнение двух строк и возвращающие разность кодов первых несовпадающих символов.
Функция strcmp.
Функция strcmp имеет прототип:
int strcmp(const char* str1, const char* str2);
- 0 , если str1 > str2
Эта функция производит сравнение, различая прописные и строчные буквы
char s1[]="Hello"; char s2[]="HeLlo"; int k=strcmp(s1,s2); coutВ результате, на экран будет выведено: 32. Т.к. код символа l = 108, а код символа L = 76. 108-76=32.
Функция stricmp.
Функция stricmp имеет тот же прототип как и функция strcmp. Отличие этих двух функций лишь в том, что stricmp не различает регистр символов. Т.е. для предыдущего примера на экран выведется 0.
Функция strncmp.
Имеет прототип:int strncmp(const char* str1, const char* str2, size_t num);Эта функция сравнивает num первых символов строк, на которые указывают указатели str1 и str2. Пример:
char s1[]="Hello"; char s2[]="HeLlo"; int k=strncmp(s1,s2,2); cout