c - 字符串初始化错误

标签 c arrays string pointers

在这里,我在代码中尝试执行以下操作,并收到以下错误---“prog.c:10:8: 错误:从类型分配给类型“char[100]”时,类型不兼容'char *'"。请帮助并告诉我如何修改我的初始化(char str[100])以获得正确的答案

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

int main()
{

  char str[100];


  str = "a";
  str = str + 1;
  str = "b";
  str = str + 1;
  str = "c";
  str = str + 1;

  printf("%s", str - 2);
  return 0;    
}

最佳答案

您已经声明了一个数组

char str[100];

通过指定数组的名称,您将获得数组的基地址,该基地址与第一个元素的地址相同。

str="a";

在上面的语句中,您尝试将“a”(注意“a”在这里是字符串)地址分配给数组基址。 编译器不会允许你这样做。因为,如果你这样做,你将失去所有 100 个元素。

如果您想为第一个元素分配值“a”,则执行

str[0] = 'a';

请注意,我使用了单引号。请记住“单字符的单引号”

关于c - 字符串初始化错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17831953/

相关文章:

c - 从文本文件读取以填充结构类型

java - 我需要从控制台输入的字符串中删除空格

java - 如何创建比较字符串长度的条件语句?

linux - 使用 linux 命令行识别文件中具有 2 个字段的重复行

python - 如何将(四舍五入) float 数组更改为字符串数组python

c - 稀疏矩阵-矩阵乘法

c - 使用静态数组

c - BSS和数据段默认有哪些数据?

java - 在多个二维数组中搜索相似条目的代码

java - Java 数组中的删除