Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.07.2010, 22: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 в 09:14.
green-tree вне форума Ответить с цитированием
Старый 01.08.2010, 23:20   #2
creator32
Пользователь
 
Регистрация: 13.11.2008
Сообщений: 18
По умолчанию

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

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

Код:
if (answer == "one")
Даже так строки-char* не сравнивают.
p51x вне форума Ответить с цитированием
Старый 02.08.2010, 00: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 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ввод символьной строки,вывод содержимого соответствующего регистра(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 18:41