一、C语言如何给字符数组初始化
1、直接逐个初始化字符数组:
字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素。
charstr[10]={'I','','a','m','',‘h’,'a','p','p','y'};
注意:如果花括号中提供的字符个数大于数组长度,则按语法错误处理;若小于数组长度,则只将这些字符数组中前面那些元素,其余的元素自动定为空字符(即'\0'
)。
2、用字符串常量来初始化字符数组:
在c语言中,将字符串作为字符数组来处理。因此可以使用字符串来初始化字符数组。
charstr[]={"Iamhappy"};
也可以省略花括号。
charstr[]="Iamhappy";
但是,上述这种字符数组的整体赋值只能在字符数组初始化时使用,不能用于字符数组的赋值,字符数组的赋值只能对其元素一一赋值,下面的赋值方法是错误的。
charstr[];
str="Iamhappy";//错误,字符数组的赋值只能按元素一一赋值
二、C语言字符串数组可以修改吗
不可以。当您在源代码中编写“String”时,它将直接写入可执行文件中,因为该值需要在编译时知道(有工具可以将软件分开并找到其中的所有纯文本字符串)。
当你写char*a="Thisisastring",“这是字符串”的位置在可执行文件中,而指向的位置在可执行文件中。可执行映像中的数据是只读的。
您需要做的(如其他答案所指出的)是在堆上或堆栈帧上的位置创建该内存。
如果声明一个本地数组,则在堆栈上为该数组的每个元素创建空格,并将字符串文字(存储在可执行文件中)**到堆栈中的该空间。
三、C语言字符串能用数组表示吗
C语言字符串能用数组表示,实际字符串就是字符数组。
1.用双引号引起来的就是字符串,字符串由字符组成,字符串以\0结尾,表示字符串结束符。
2.一般来说字符数组的长度是字符的个数加结束符,字符串使用“%s”格式化输出。
3.C语言标准库<string.h>,包含用来处理字符串各种函数。
四、c语言数组输入方式
在C语言中,有两个函数可以让用户从键盘上输入数组数据,它们分别是gets()和scanf()。scanf()是通过格式控制符%s输入数组字符串,除了字符串,还能输入其他类型的数据;gets()是直接输入数组字符串,并且只能输入字符串。
但是,scanf()和gets()是有区别的。
scanf()读取字符串时以空格为分隔,遇到空格就认为当前字符串结束了,所以无法读取含有空格的字符串。
gets()认为空格也是字符串的一部分,只有遇到回车键时才认为字符串输入结束,所以,不管输入了多少个空格,只要不按下回车键,对gets()来说就是一个完整的字符串。换句话说,gets()用来读取一整行字符串。
好了,关于c语言字符数组和c语言字符数组初始化的问题到这里结束啦,希望可以解决您的问题哈!