加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何比较一个char?

发布时间:2020-12-16 10:53:27 所属栏目:百科 来源:网络整理
导读:我正在学习c.我有个问题.为什么我的程序不起作用? #includestdio.h#includeconio.h#includestdlib.hchar cmd;void exec(){ if (cmd == "e") { printf("%c",cmd); // exit(0); } else { printf("Illegal Arg"); }}void input(){ scanf("%c",cmd); exec();}in
我正在学习c.我有个问题.为什么我的程序不起作用?

#include<stdio.h>
#include<conio.h>
#include<stdlib.h>

char cmd;

void exec()
{
        if (cmd == "e")
        {
                printf("%c",cmd);
                // exit(0);
        }
        else
        {
                printf("Illegal Arg");
        }
}

void input()
{
        scanf("%c",&cmd);
        exec();
}

int main()
{
        input();
        return 0;
}

我插入一个“e”,但它说非法arg.
cmd不等于“e”.为什么?我用scanf将cmd设置为“e”.

解决方法

首先,在C单引号是char文字,双引号是字符串文字.
因此,’C’和“C”不是一回事.

要进行字符串比较,请使用strcmp.

const char* str = "abc";
if (strcmp ("abc",str) == 0) {
   printf("strings matchn");
}

要进行字符比较,请使用相等运算符.

char c = 'a';
if ('a' == c) {
   printf("characters matchn");
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读