LINUX.ORG.RU

argv[1] - это char*, т.е. указатель; "hello" - это тоже, как ни странно, char*, т.е. тоже указатель. Ты сравниваешь два указателя, которые показывают на разные [экземпляры] строки.

Для работы со строками есть <string.h>. Для сравнения строк - strcmp.

Rock
()

Прочитайте про работу со строками в C, особенно про сравнение строк.

#include <string.h>

...

if (strcmp(argv[1], "hello")!=0) ...

Конструкция

if (argv[1] == "hello")

сравнивает указатели на argv[1] и "hello".

DKorolkov
()

#include <stdio.h>
#include <string.h>
main (int argc, char *argv[])
{
       if (!strcmp(argv[1],"hello"))
          printf("hello, world\n");
       else printf("Нифига :(\n")
          return 0;
}

anonymous
()
Ответ на: комментарий от Rock

argv[1] - это char*, т.е. указатель; "hello" - это тоже, как ни странно, char*, т.е. тоже указатель

А почему "hello" это указатель, он же нигде не обьявлен и куда в данном случае он указывает???

anonymous
()
Ответ на: комментарий от anonymous

anonymous (*) (28.04.2004 16:28:54):

> А почему "hello" это указатель, он же нигде не обьявлен и куда в данном случае он указывает???

Он указывает на начало цепочки из 6 char ('h','e','l','l','o','\0'), размещенных где-то в памяти (где именно -- зависит от компилятора/системы) при загрузке твоей программы.

Die-Hard ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.