如何检查字符串是否没有任何字母数字字符?

时间:2016-02-07 18:41:51

标签: c string segmentation-fault gdb strcmp

每当我比较

时,我都会收到分段错误错误
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

1 个答案:

答案 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 */