我想在C中存储一系列单词
更具体一点,我想形成这样的数组:
a_cool_array_name={"first","second","third","fourth","fifth"};
Run Code Online (Sandbox Code Playgroud)
我尝试过使用:
#include <stdio.h>
int main()
{
/*i have tried using both single and double quotation marks */
char array1[4];
array1[0]='hello';
array1[1]='world';
array1[2]='its';
array1[3]='me';
printf("%s",array1[0]);
}
Run Code Online (Sandbox Code Playgroud)
我一直在使用单和双引号试图然而BOTH失败
在单引号中,程序在我尝试构建和运行它时崩溃了.如果是双引号,程序甚至根本不编译.它抛出一个看起来像这样的错误
8:11:错误:赋值在没有强制转换的情况下从指针生成整数
在字符串中使用单引号和双引号有何不同?
及
如何使字的阵列?
有没有其他方法存储其他2D数组的单词?哪个很混乱...... :(
对单个字符使用单引号:'c' 'd'etc,并对字符串使用双引号"first".
你想在这里使用的是矩阵或二维chars数组:
char array[10][20];
Run Code Online (Sandbox Code Playgroud)现在array[0]是20个字符的数组.您可以像使用普通数组一样使用它.例如:array[0][0]在下面的代码中给出了'f'.
char array[][20] = {"first","second","third","fourth","fifth"};
Run Code Online (Sandbox Code Playgroud)
现在:
printf("%s\n",array[0]); 会给你"第一"
你几乎已经做到了,要定义一个字符串数组,你可以这样做1
const char *array[] = {"first", "second", "third", "fourth", "fifth"};
Run Code Online (Sandbox Code Playgroud)
另请考虑:
单引号用于获取int对应于单个字符的ascii值的an,称为字符常量。用单引号括起来的多个字符称为多字符常量,并且还为您提供一个int值,该值由实现定义。
当使用字符串文字(例如上面初始化数组的字符串文字)时,请始终使用const. 这将帮助您防止非法修改它们。
c中没有字符串类型。要拥有字符串,您需要了解它们是什么以及它们如何工作。C字符串只不过是一个非字节序列(如果您愿意的话,可以是数组),后跟一个标记其结尾的 a。\0'\0'
上面的代码中有5个字符串,例如"first",它由以下序列组成
{'f', 'i', 'r', 's', 't', '\0'}
Run Code Online (Sandbox Code Playgroud)
终止'\0'非常重要。
因此,您创建了一个指向strings的指针数组,但字符串是上面解释的意义上的。
1一个指针数组char,用字符串文字初始化。所以它是一个char指向字符串文字的指针数组。
| 归档时间: |
|
| 查看次数: |
28635 次 |
| 最近记录: |