c - 分配给类型 ‘char[100]’ 时不兼容的类型

标签 c

<分区>

脚本:

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

char inn[100];

int main()
{

    inn='EEE';

    if(strcmp(inn,"EEE") == 0){
    printf("ok");
    }

}

编译错误:

gcc test.c -o test

test.c: In function ‘main’:
test.c:9:9: warning: multi-character character constant [-Wmultichar]
     inn='EEE';
         ^
test.c:9:8: error: incompatible types when assigning to type ‘char[100]’ from type ‘int’
     inn='EEE';

解决方案是什么?

我应该更改我的最高声明还是应该在其他地方做一些不同的事情?

最佳答案

单引号在 C 中对于字符串是无效的。它们只能用于单个字符。

要将“EEE”字符串设置为 inn 变量,请使用 strcpy 函数:

strcpy(inn, "EEE");

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

char inn[100];
int main() {
    //In C, you have to manually copy string
    strcpy(inn, "EEE"); 
    if (strcmp(inn,"EEE") == 0){
        printf("ok");
    }
}

记得也包含 string.h 库。

关于c - 分配给类型 ‘char[100]’ 时不兼容的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42275008/

相关文章:

c - 对 C 中的 char 数组进行排序

c - 找出该算法的最坏情况运行时间,以检查一个数字是否能被 3 整除

c - Openssl crypto lib中有一个函数可以安全地输入密码吗?

c++ - 如何使用常规 Windows C/C++ API 查询进程的线程数

c - 这是一个 gcc 错误吗?

c - 在 Qt Creator 中运行纯 C 项目

C函数调用

c++ - extern "C"没有禁用名称修改

c - Gcc 编译器命令和选项

c - 为什么 gcc 为用户级和内核级代码产生不同的汇编结果