Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Строки, указатели, сравнение / 8 сообщений из 8, страница 1 из 1
19.02.2013, 19:14
    #38157942
Анатолий22
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Строки, указатели, сравнение
Подскажите, пожалуйста простую вещь.
В функцию попадает указатель на строку. Как его содержимое сравнить с конкретной строкой?
Например:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
int func1(char* nname)
{
  if(nname == "Вася")
    return 1;
  else
    return 0;
}


И тоже самое со switch.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
int func1(char* nname)
{
  switch(nname)
  {
   case "Вася":
     return 1;
   case "Петя":
     return 0;
  }
}
...
Рейтинг: 0 / 0
19.02.2013, 19:16
    #38157949
Паганель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Строки, указатели, сравнение
...
Рейтинг: 0 / 0
19.02.2013, 20:06
    #38158013
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Строки, указатели, сравнение
Анатолий22,

Switch для сравнения строк не годится ни в каком виде.

(т.е. можно конечно, но сложно)
...
Рейтинг: 0 / 0
19.02.2013, 21:21
    #38158084
Новый Год
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Строки, указатели, сравнение
Анатолий22Подскажите, пожалуйста простую вещь.
В функцию попадает указатель на строку. Как его содержимое сравнить с конкретной строкой?
Например:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
int func1(char* nname)
{
  if(nname == "Вася")
    return 1;
  else
    return 0;
}


И тоже самое со switch.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
int func1(char* nname)
{
  switch(nname)
  {
   case "Вася":
     return 1;
   case "Петя":
     return 0;
  }
}



и if и switch отстойные

Код: plaintext
1.
2.
3.
 if(strcmp("Вася", nname))
   return 0;
 return 1;



Код: plaintext
1.
return strcmp("Вася", nname) ? 1 : 0;
...
Рейтинг: 0 / 0
19.02.2013, 21:28
    #38158096
Новый Год
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Строки, указатели, сравнение
очепятка
return strcmp("Вася", nname) ? 0 : 1;
...
Рейтинг: 0 / 0
20.02.2013, 02:44
    #38158296
Yatha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Строки, указатели, сравнение
Анатолий22,
switch вроде как для целых типов только используется
это в SQL со строками можно
...
Рейтинг: 0 / 0
20.02.2013, 07:16
    #38158361
NekZ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Строки, указатели, сравнение
Можно ещё воспользоваться std::string::operator==
...
Рейтинг: 0 / 0
20.02.2013, 12:09
    #38158694
Анатолий22
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Строки, указатели, сравнение
Спасибо за советы. Разобрался, все работает.
Я нашел свой глупый косяк. Строка для сравнения "просто" не передавалась в функцию.
Вот, блин, ничего и не сравнивалось!
Кучу времени убил...
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Строки, указатели, сравнение / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]