Я пишу код, взятый из командной строки. Пользователь будет вводить в командной строке, например, ./a.out -l 2 4 6
. Цель здесь состоит в том, чтобы перебрать массив и посмотреть, появляются ли либо '-l'
, либо '-s'
. Если «-l'
» появляется, то он принимает значение x = 1, если '-s'
x = 2, если ни x = 0. В настоящий момент проблема заключается в сравнении между указателем и целым числом в строке 7 и 12. Также многосимвольная символьная константа в строке 12, что я не уверен, почему его бросают, когда линия 9 в порядке. Как я могу изменить свои операторы if
, чтобы исправить возникающие проблемы? Мой код выглядит следующим образом:C пользовательский ввод в массив, используемый как оператор
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]){
int x;
for(; *argv != '\0'; argv++){
if(*argv == '-l'){
x = 1;
}
else if(*argv == '-s'){
x = 2;
}
else{
x = 0;
}
}
printf("%d",x);
return 0;
}
Возможный дубликат [Как сравнить указатель на строки в C] (http://stackoverflow.com/questions/ 3663668/how-to-compare-pointer-to-strings-in-c) –
Тот же ответ немного другой вопрос, я не сравниваю две строки, но ищет символ из строкового ввода, который теперь находится в массиве –
Да, вы пытаясь сравнить две строки ... Если нет, зачем вы писали '* argv == '-s''? –