将用户输入与C中的字符串进行比较

时间:2013-10-26 05:36:40

标签: c

我试图查看用户是否输入“h”以便我可以运行另一个函数,但由于某种原因,当我运行程序时,它会指出Segmentation Fault。任何帮助,将不胜感激。

char checkh[] = "h";
char *checkInput;
printf("Enter input:");
scanf("%s", checkInput);

    if(strcmp(checkInput, checkh) == 0){
            helpMsg();
    }

2 个答案:

答案 0 :(得分:2)

您可以使用简单的方法:

char choice;
scanf("%c",&choice);
if(choice=='h' || choice=='H')
{
    help();
}

答案 1 :(得分:1)

我相信这是所有评论都在谈论的内容。您必须在使用char *var之前分配内存。

在现有代码中,添加指示的行,您将不会遇到seg错误。

char checkh[] = "h";
char *checkInput;  
checkInput = malloc(10);//add this line;
printf("Enter input:");
scanf("%s", checkInput);

    if(strcmp(checkInput, checkh) == 0){
            helpMsg();
    }  
//some code  
free(checkInput);//add this line