c - 我如何知道我的 args[] 字符串是否为 char 类型?

标签 c linux ubuntu

我正在编写程序,其中第一个参数必须是 char 类型,第二个参数必须是 int 类型。我已经为 int 类型编写了代码,但无法为 char 编写代码。我到处搜索,但找不到问题的答案,这是代码:

int main(int argc, char *argv[]){
    if(argc != 3){
         puts("Error: Invalid number of arguments\n");
         exit(0);
    }
    if(argv[1] ??){
         puts("Error: First argument not a char type\n");
         exit(0);
    }
}

最佳答案

上面lurker解释了原因。 如果您想验证第一个参数是命令行中的字符,则 isascii 可能就是您正在寻找的。应对 argv[1] 进行更多验证以避免段错误。

    if (argv[1][1]!='\0'||!isascii(argv[1][0])) {
        puts("Error: First argument not a char type\n");
        exit(0);
}

"isascii() 检查 c 是否是符合以下条件的 7 位无符号字符值 ASCII 字符集。” 并且不要忘记 #include <ctype.h>

关于c - 我如何知道我的 args[] 字符串是否为 char 类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50752028/

相关文章:

c - 如何理解下面的C语言代码?

linux - 用expect传递环境变量

php - Carbon::setLocale() 不工作 Laravel 5.4

linux - 在 ubuntu 64 位上编译 32 位程序(libjvm.so 问题)

ubuntu - 主管 - 用户名无效

c - 如何获取txt中的内容并将其存储在c中的数组中

c - 较大值的错误动态内存分配

c - 为什么信号在 Linux 中依赖于平台?

linux - Dockerfile 不会以具有 sudo 权限的用户身份运行脚本

c - 找出多个数的最小公倍数