2015-04-09 4 views
-2

Мне нужно сделать код, который сравнивает строки и присваивает число для строки. я сделал это:Сравнение строк и, если на C

int metd=0; 
if (strcmp(metodo, "GET")==1){ 
    metd=1; 
} 
if (strcmp(metodo, "HEAD")==1){ 
    metd=2; 
} 
if (strcmp(metodo, "PUT")==1){ 
    metd=3; 
} 
if (strcmp(metodo, "DELETE")==1){ 
    metd=4; 
} 

Но в конце концов, metd всегда 4. Некоторые идеи?

+5

У меня есть идея или два. Во-первых - когда такие вещи не работают, используйте отладчик перед отправкой своей проблемы в Интернет. Во-вторых - когда вы обнаруживаете (используя ваш отладчик), что функция, такая как 'strcmp()', не делает то, что вы ожидаете от нее, прочитайте ее документацию, прежде чем отправлять свою проблему в Интернет. Люди очень рады помочь, но они хотят, чтобы вы предприняли некоторые минимальные шаги, чтобы помочь себе в первую очередь. – mah

+0

Спасибо, и извините ... Я отлаживал до публикации, но я видел странное поведение (правильная функциональность функции). В следующий раз я постараюсь получить документацию еще до публикации. –

ответ

5

strcmp() возвращает 0, когда обе строки являются равно не 1

+1

Хороший ответ, все, что нужно, это ссылка на страницу руководства и желание прочитать ее ... Кстати, мне это нравится ['strcmp()') (http://man7.org/linux/man- pages/man3/strcmp.3.html) больше, потому что нет рекламы, и ее приятно читать, смотреть ... И вам просто нужно google для 'man7 strcmp' ... –

+0

@iharob Долгое время! ! Спасибо, я добавил вашу ссылку :) – Gopi