每当我比较
时,我都会收到分段错误错误strcmp(commands[i].cmd[0],"quit") == 0)
和
命令[i] .cmd [0]的类型为char *。
,这发生在
时cmd [0] = 0x0
根据我的gdb调试器。
现在,当没有字母数字字符时也会发生这种情况。例如,只有空格的字符串。我怎么能避免这种情况。我想检查一下我的字符串是否至少有一个符号。
这是导致我的分段错误的错误
编程接收信号SIGSEGV,分段故障。 __strcmp_ssse3()at ../sysdeps/x86_64/strcmp.S:213 213 movlpd(%rdi),%xmm1
答案 0 :(得分:1)
int isalnumstr(const char *str)
{
int i;
for (i = 0; str[i]; ++i)
if (isalnum((unsigned char) str[i]))
return 1;
return 0;
}
来电者代码:
if (isalnumstr(s))
/* Contains alpha numeric */
else
/* Doesn't contain alpha numeric */