条件比较

时间:2013-02-03 20:23:04

标签: c

我正在编写简单C shell的退出部分。

int main(int argc, char*argv[]){
    while(1){
        char input_line[MAX], *tokens[X_MAX];
        int i,n; //n is the number of tokens inside the *tokens
        .
        .
        .//gets the input from user and stores into tokens
        .
        if(n ==1){
            char *ex = "exit";
            printf("difference: %i\n",strcmp(tokens[0],ex));  //this prints out 10
        }


    }
}

当他们有所不同时我会被困在那个部分,显然他们不是。我想要做的是当用户键入“exit”(存储在char数组中的“令牌”)时,if语句将其选中,然后将其与存储在“ex”中的语句进行比较。

有什么想法吗?

感谢

1 个答案:

答案 0 :(得分:4)

很可能你没有修剪你从用户那里获得的字符串,它仍然包含换行符'\n'。我跳到了这个条件,因为\n在ASCII中是10。


对于修剪,我使用它:

for (p = line + strlen(line) - 1; p >= line && isspace(*p); --p)
        ;

p[1] = 0;

不确定我在哪里或者是我的。可能不是我的。