c - 用单个字符声明整个字符串

标签 c arrays string

在 C 中声明数组时,我可以编写 int array[100]={0} 并将 0 分配给所有索引。有什么办法可以用字符串做同样的事情吗?因为当我编写 char string[100]={'A'} 时,它只将“A”分配给第一个索引。当我打印字符串时,它显示“A”而不是我想要的“AAAAA.....A(99 次)”。我不想使用循环为所有索引分配“A”。那我该怎么办?

最佳答案

它不在标准中,但一些编译器(包括 gcc 和我在我的系统上测试它的 clang)允许这样做:

#include <stdio.h>
int main(){
  char str[100] = {[0 ... 98] = 'A'};
  str[99]='\0';  // this line is really not necessary, since default is 0 and I just wrote it for clarity 
  printf("%s\n", str);
  return 0;
}

关于c - 用单个字符声明整个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42731794/

相关文章:

c# - 混合起来,然后再次重新排序 .Net 2.0 中的数组

arrays - MongoDB:更新数组中的数组

ios - Swift:如果是正斜杠,则从字符串中删除最后一个字符

将双指针数组中的字符串更改为大写

c++ - C/C++中如何获取函数的执行时间

c - C语言中的fork()函数

c - 为什么需要在自动存储类中声明可变长度数组?

Java 13 三引号文本 block *不带*换行符

string - Typescript:获取未定义的值

c:从字符串中删除两个字符