首页 > 编程知识 正文

c语言字符串初始化,初始化字符数组

时间:2023-05-03 18:03:06 阅读:168066 作者:3429

代码编译执行环境: vs 2012 win32调试

1 .字符数组初始化方式

变量的定义表示变量所属的类型、变量名、分配空间以及初始化初始值的过程。 可见,变量初始化是变量定义的一部分。 除了在const变量中显示的初始化外,如果在定义变量时未显示初始化,编译器将使用缺省值初始化变量。 的赋值和变量的初始化有本质的区别。 具体来说,请参考我的另一个博客。 是初始化的小事。

1 .逐字符初始化

定义字符数组时,可以按字符进行初始化。

char str[10]={ 'h '、' e '、' l '、' l '、' o'};

如果指定的字符小于字符数组的长度,编译器将剩下的字符设置为空字符“ 0”。

用于初始化字符数组的字符串常量1.2

在c语言中,字符串被视为字符数组。 因此,可以使用字符串初始化字符数组。

char str[]={'hello'};

也可以省略大括号。

char str[10]='hello ';

如果长度小于字符数组的长度,则剩下的字符为空字符“ 0”。

因此,可以通过以下方式将单个字符数组初始化为空字符数组:

char test1[256]=';

char test2[256]={''};

char test3[256]={0};

char test3[256]={''};

2 .字符数组分配

为预定义的字符数组赋值时,无法使用与初始化相同的方法为字符数组赋值。 以下句子是错误的。

char str[10]; //定义已完成(包括编译器缺省初始化) )。

str={'a ',' d ',' s '; //错误

str='abc '; //错误

str={0}; //错误

错误的原因是字符数组名称表示字符数组的目标,不能修改,不能用作左值。 左值的概念请参考博客。 我知道经常被引用为左值。

2.1按字符赋值

)1) for循环的方式。

char str[10];

for(intI=0; I

str[i]=' ';

)2) memset ) )建议使用赋值,因为它比for循环更有效。 当然,字符数组的空白必须在初始化时完成,不应该再一举多得。

char str[10];

memset(str,0,sizeof ) str );

2.2拷贝分配

利用现有字符串,通过memcpy、strcpy或strncpy等函数实现复制赋值。 参考代码如下。

char str[10];

char str2[]='hello ';

memcpy(str,str2,sizeof ) str2);

strcpy(str,str2;

strncpy(str,str2,strlen ) str2) 1;

参考文献

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。