怎么把一个字符串赋值给字符数组
- 2023-05-31 16:37:12
怎么把一个字符串赋值给字符数组?
chars[20];s=helo;这样错误的原因就是:不能用赋值语句将一个字符串常量直接给一个字符数组赋值。
chars[20];charss[]=hello;s=ss;错误原因是:不能用赋值语句将一个字符数组直接给一个字符数组赋值,即字符串的复制(c语言中,但是在c++的string类,上面的赋值是正确的)必须用strcpy()函数实现。
而chara[]=”toyou“;正确的原因是:因为在声明数组变量的时候就是,为其开辟空间,并为其初始化,这样才是符合c语言语法的。扩展资料:C语言中字符串赋值的理解一、指针式赋值上面的示例是显然可以正常执行的,也是很容易理解的。但是下面这种方式就令人有点难以理解了。
通过程序的运行情况,我们可以知道:char*p=hello;这种字符串的赋值方式是完全没有问题的。
要理解这种赋值方式,我们首先得理解双引号(特别注意:这个是双引号,不要赋值的时候给弄了个单引号)在这个语句中做了什么工作。
双引号主要做了3个工作,分别是:
(1)申请了空间(在常量区),存放了字符串。
(2)在字符串尾加上了“\\0”。
(3)返回地址。
这里所返回的地址就赋值给了char*类型的指针变量p。二、通过字符数组直接把字符串赋值。程序如下:
三、需要注意的一些问题直接把字符串赋值给数组名(也就是数组首元素的首地址)是不行的。
声明:本文内容及图片来源于读者投稿,本网站无法甄别是否为投稿用户创作以及文章的准确性,本站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。请将本侵权页面网址发送邮件到583666585@qq.com,我们会及时做删除处理。