C 语⾔字符串赋值的⽅法
⾸先,C语⾔没有向C++,Java,python等⾯向对象的语⾔中string这样的字符串类型,C语⾔中的字符串是存放在数组中的C语⾔中,常见的3种字符串赋值有如下:
1、通过直接初始化
但是,直接把数组元素赋值给数组名(也就是数组⾸元素的地址),是不⾏的
这样会出现编译错误:C2106(运算符的左操作数必须为左值)
2、使⽤strcpy函数进⾏初始化
这⾥需要注意的是,使⽤strcpy函数,strcpy(str1,str2),字符数组1必须定义的⾜够⼤,以便容纳被复制的字符串2,避免数组越界。以下写法是错误的
注: 在C语⾔中,将⼀个字符串赋值给另⼀个字符串,只能使⽤strcpy函数
但是,可以使⽤赋值号实现对单个字符的赋值
如:
这⾥需要注意的是,结束后⼀定要⾃⾏添加 ‘\0’, 否则,就会出现” AB烫烫烫烫烫烫烫 ]D痨 “的编译结果
3、通过指针赋值
通过指针赋值字符串相对⽐较难理解,⼤家先看⼀段代码int  main (){ char  str [10] = "China";//还可以写成char str[10] ;str[10] = "China"; printf ("str = %s", &str ); return  0;}
1
2
3
4
56int  main (){ char  str [10] ; str  = "China"; printf ("str = %s", str ); return  0;}
1
2
3
4
5
6
7int  main (){ char  str1[10],str2[] = "China"; strcpy (str1, str2);//此⾏代码还可以写为 strcpy(str1,"China"); printf ("str1 = %s", str1); return  0;}
1
2
3
4
5
c语言如何创建字符串数组
6
7char  str1[10],str2 = "China";str1 = str2;
1
2char  str1[10];;str1[0] = 'A';str1[1] = 'B';str1[2] = '\0';
1
2
3
4
如何理解这段代码:
①程序定义了⼀个char *类型的指针变量(字符指针变量)string,在C语⾔中,指针 = 地址,顾名思义,指针变量存放着地址②字符串常量"I Love China",C语⾔在处理字符串常量是按字符数组来处理的。
③结合上两点可以知道,该字符指针存放的是字符常量第⼀个元素的地址
因此,输出时,只需告诉编译器字符常量⾸元素的地址即可
还可以写为:
不可以写为: *string = “I Love China”;
因为,字符串常量在C语⾔中是按字符数组来存储的,string 存储地址
另外,在谈谈字符串的输出;
⽽,整型数组的输出确是需要⽤到for循环#define  _CRT_SECURE_NO_WARNINGS //在VS2019下可以加,否则会出现C4996问题#include  <stdio.h>int  main (){ char * string = "I Love China"; printf ("string  = %s", string ); return  0;}
1
2
3
4
5
6
7
8char * string = "I Love China";
1char  * string ;string = "I Love China";//不可以写为*string = "I Love China";
1
2char  str [10] = "China";printf ("str = %s", str );
1
2

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。