Отправляет email-рассылки с помощью сервиса Sendsay

Супер ТРЁП !!! Форум обо всем !!!

Здравствуйте, уважаемые все!

Скажите есть среди нас профессионалы в языке 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

Ответить   Tue, 23 Dec 2003 14:01:14 +0300 (#40716)

 

Ответы:

Привет !

Ну, как профессионалы :-)
Работаю я так...

типа 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

Ответить   Wed, 24 Dec 2003 00:16:10 +0300 (#41099)