
Здравствуйте, уважаемые все!
Скажите есть среди нас профессионалы в языке C ?
Вот я написал охрененную прогу, и неделю вот уже с мелочью никак не
разберусь.
Как в C сравнивать переменные типа char?
Я задаю такую строку
if (k1= =k2) printf ("%s = %s", k1, k2);
то есть если две строки равны то он мне должен напечатать их и что они
равны.
но он блин не печатает, хотя строки равны стопудово!!!
то есть они вроде как не равны. хотя без IF он мне их печатает и на экране
они абсолютно одинаковые.
может там что-то с указателями?
помогите пожалуйста если кто может.
С уважением Вован.
P.S. Уважаемая Леди, простите меня за недавний наезд, искренне раскаиваюсь.
P.S-2. Уважаемый Irx, я был не прав, простите. Но прошу не считать меня
полным идиотом.
Получить правила : mailto:rest.interesting.flame-rules@subscribe.ru
Формат "дайджест" : mailto:rest.interesting.flame-digest@subscribe.ru
Формат "каждое письмо" : mailto:rest.interesting.flame-normal@subscribe.ru
Формат "читать с веба" : mailto:rest.interesting.flame-webonly@subscribe.ru
-*Информационный канал Subscribe.Ru
Написать в лист: mailto:rest.interesting.flame-list@subscribe.ru
Отписаться: mailto:rest.interesting.flame--unsub@subscribe.ru
http://subscribe.ru/ mailto:ask@subscribe.ru
Привет !
Ну, как профессионалы :-)
Работаю я так...
типа char - так и сравниваются (k1==k2).
но надо учесть, что char - всего 1 байт. То есть это просто число, а не
строка.
То есть :
char k1='a';
char k2='a';
(k1==k2) будет равно true;
а :
char k1[] = "abcdefg";
char k2[] = "abcdefg";
(k1==k2) будет false, поскольку k1 и k2 - указатели !
То есть в этом случае прокатит :
char *pk1 = k1;
Если надо сравнивать строки, то можно использовать функции run-time
библиотек
C для работы со строками, классы библиотек классов (mfc, vcl, и.т.д.) - типа
CString, шаблоны библиотек шаблонов (например библиотеки ATL).
Самый простой способ :
функция strcmp :
int strcmp( const char *string1, const char *string2 );
возвращает результат < 0 если string1 < string2,
== 0, если string1 == string2,
то есть :
char k1[] = "abcdefg";
char k2[] = "abcdefg";
if(strcmp(k1, k2) == 0)
...
то что надо :-)
А вообще еще есть лист comp.soft.prog.prog
(http://subscribe.ru/catalog/comp.soft.prog.prog) - для программистов :-)
С уважением, Вахтуров Виктор.
Информационный сайт для программистов http://SoftMaker.com.ru
Получить правила : mailto:rest.interesting.flame-rules@subscribe.ru
Формат "дайджест" : mailto:rest.interesting.flame-digest@subscribe.ru
Формат "каждое письмо" : mailto:rest.interesting.flame-normal@subscribe.ru
Формат "читать с веба" : mailto:rest.interesting.flame-webonly@subscribe.ru
-*Информационный канал Subscribe.Ru
Написать в лист: mailto:rest.interesting.flame-list@subscribe.ru
Отписаться: mailto:rest.interesting.flame--unsub@subscribe.ru
http://subscribe.ru/ mailto:ask@subscribe.ru