Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail


Ответ
 
Опции темы
Старый 31.07.2010, 21:02   #1
green-tree
 
Регистрация: 16.07.2010
Сообщений: 7
По умолчанию Проверка содержимого строки в c++

Здравствуйте, уважаемые программисты

Хотел модернизировать свою программку - конвертер градусов и задался вопросом. Как в зависимости от того, какое содержимое у строковой переменной, запрограммировать дальнейшее поведение программы. Вот простейший пример:

Код:
#include <iostream>
   
int main() {

char answer;
std::cout << "Введите слово";
std::cin >> answer;

if (answer = "one") 
    std::cout << "Да";
else
    std::cout << "Нет";
}
Суть в следующем:
если пользователь ввел слово one, программа реагирует выводом сообщения "Да", в ином случае выводом сообщения "Нет". Но это не работает

Как подобную проверку (на этом простейшем примере" можно реализовать?

Заранее спасибо

Последний раз редактировалось Stilet; 03.08.2010 в 08:14.
green-tree вне форума Ответить с цитированием
Старый 01.08.2010, 22:20   #2
creator32
Пользователь
 
Регистрация: 13.11.2008
Сообщений: 18
По умолчанию

ОБРАТИТЕ ВНИМАНИЕ :
Код:
if (answer = "one")
std::cout << "Да";
else
std::cout << "Нет";
т.е. в указанном месте должно быть сравнение (==), а не присваивание (=). очень распространенная ошибка.
creator32 вне форума Ответить с цитированием
Старый 01.08.2010, 23:10   #3
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,103
По умолчанию

ОБРАТИТЕ ВНИМАНИЕ :
Код:
char answer;
Это ОДИН символ и все.

Код:
if (answer == "one")
Даже так строки-char* не сравнивают.
p51x вне форума Ответить с цитированием
Старый 01.08.2010, 23:22   #4
creator32
Пользователь
 
Регистрация: 13.11.2008
Сообщений: 18
По умолчанию

поэтому Вам следует образовать не
Код:
char answer;
, а
Код:
char * answer;
после чего сравнивать следующими функциями:
Цитата:
Для лексикографического сравнения строк используются функции strcmp и stricmp. Первая сравнивает строки с учетом регистра, вторая – без. Однако, все это относится только к латинице. Если вы хотите сравнивать без учета регистра кириллические строки, придется разобраться с локалями.

Прототипы этих функций таковы:

Код:
int stricmp(const char *string1, const char *string2);
int strcmp(const char *string1, const char *string2);
Обе функции возвращают число меньшее 0, если первая строка меньше второй, большее нуля если первая строка больше второй и 0, если строки лексикографически равны.

Источник: http://www.rsdn.ru/article/cpp/cstr.xml
creator32 вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ввод символьной строки,вывод содержимого соответствующего регистра(TASM) adgam Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 17.03.2010 08:48
Проверка содержимого блоб поля Lokos БД в Delphi 1 04.03.2010 07:43
проверка содержимого поля Edit KaimNotark Общие вопросы Delphi 6 16.02.2010 07:45
проверка строки Артэс Общие вопросы C/C++ 13 21.01.2010 00:28
Проверка строки SL1CK Общие вопросы C/C++ 4 08.06.2009 17:41


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS
Здесь нужно купить рекламу за 7 тыс руб в месяц! )
пишите сюда - alarforum@yandex.ru
ИКС 840