在C中为char数组(String)赋值

时间:2017-10-21 16:24:43

标签: c

我试图在C中为String赋值,但对我来说它不起作用...... 这就是我试图做的事情:

#include <stdio.h>
#include <string.h>
int main()
{
char k[25];
k == "Dennis"
printf("My Name is %s", k);
}

示例输出将是:我的名字是丹尼斯

但是,我收到一个警告: 警告:不同指针类型的比较缺少一个演员k ==&#34; Dennis&#34 ;;

我试图在这个网站上找到一个解决方案,但找不到一个,在C中为char数组(字符串)赋值的同样错误

还尝试将我的char初始化为

  char *k[25];

仍然没有工作......

1 个答案:

答案 0 :(得分:2)

  1. 您确实在这里进行比较:k = "Dennis";。所以编译器会正确警告你。

  2. 您可能意味着char k[25] = "Dennis"; (修复了那里缺少的分号)。但那也不会奏效。因为在C数组中不是可修改的左值。

  3. 所以你可以初始化数组:

    strcpy

    或使用strcpy(k, "Dennis"); 复制:

    char *k;
    k = "Dennis";
    printf("My Name is %s", k);
    

    如果您实际上不需要数组,则只需使用指向字符串文字的指针即可。以下是有效的:

    {{1}}