почему мы не можем сравнить две строки в С программой directly.For примером я пробовал следующий примерпочему мы не можем сравнить две строки непосредственно в с
char *str="int";
if(str=="int")
printf("yes");
else
printf("no");
Для выше я получил выход в «нет» Я попытался выше код, используя ту же логику, что если для целых т.е.
int i=10;
if(i==10)
printf("same");
Но когда я изменил код выше как следующий
if((strcmp(str,"int"))==0)
printf("yes");
Я получил выход в «да» Что проблема в первом указанного кода?
указатель на символ не является int – Cyclonecode
Совет: перед тем, как задать вопрос, попробуйте сами найти ответ. Вопрос чрезвычайно прост (отсюда и вниз). Спросите его, что вы вложили очень мало усилий. Это смущает вас и раздражает нас. Я был хорош и все равно ответил - если предположить, что вы пришли, скажем, C#, это может быть немного озадачивающим. Но имейте в виду, что C# сделал специальные меры для строк, или они не были бы «равными» в соответствии с 'operator ==' либо! Не более, чем любой средний ссылочный тип по вашему выбору. –
В некотором роде ответ должен быть «вы можете»; однако результат не будет тем, что вы ожидаете, потому что ваши указатели сравнения, а не символы, на которые они указывают. =) – Segmented