字符串赋值字符串赋值
我们都知道,字符串的表现形式有两种:一种是以字符数组的形式,如char str[20]="I love
china";
另一种是以字符指针的形式,如char *str="I love china" 现在如果我想将一个字符串赋值给一个字符数组或一个字符指针,该怎么做呢, char buf[20], *str;
buf = "I love china";
strcpy(buf, "I love china");
str = "I love china";
strcpy(str, "I love china...
字符串赋值
我们都知道,字符串的表现形式有两种:一种是以字符数组的形式,如char str[20]="I love
china";
另一种是以字符指针的形式,如char *str="I love china" 现在如果我想将一个字符串赋值给一个字符数组或一个字符指针,该怎么做呢, char buf[20], *str;
buf = "I love china";
strcpy(buf, "I love china");
str = "I love china";
strcpy(str, "I love china");
第一种做法显然是错的,因为数组名是常量,不能被赋值,所以如果你想将一字符串赋给一字符数组,只能用strcpy这种
。
第四种做法也是有问
的,这样做会出现段错误,因为你没有给str指针分配内存。正确的做法是在之前给它分配一内存,
str = (char *)malloc(sizeof(char)*20); strcpy(str, "I love china");
所以以后在将一字符串赋给其它数据时,要注意这方面的问题
其实还有一种好方法,可以将字符串直接赋值给指针,而不用给它分配内存释放内存。 那就是先定义一个字符数组,将它指定给指针,然后就可以对指针任意赋值了,而不用时刻担心着,有没有给它分配内存,
或者用完后是否释放了内存。
char str[100], *p;
p = str;
strcpy(p, "I love china");
这个方法避免了分配内存与释放内存的繁琐,应借鉴
本文档为【字符串赋值】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。