当前位置:网站首页>C——字符串
C——字符串
2022-07-20 02:36:00 【Java学不会】
字符串
1、字符串数组与字符串
1.1、字符数组的定义
用来存放
字符
数据的数组就是字符数组,字符数组中的一个元素存放一个字符。char s[5];
1.2、字符数组的初始化
- 在字符数组赋值中,未赋值的默认为
'\0'
- 字符数组中出现
'\0'
,相当于是一个字符串char s[5]={ 'A','B','C','D','E'}; char s[5]={ 'A','B'}; char s[]={ 'A','B','C','D','E'};
1.3、字符数组与字符串
- 数组名是常量不可赋值
- 字符数组可以使用整型赋值,即
ASCII码值
char s[5]={ "ABCD"}; 组+串 ("ABCD\0") char s[5]="ABCD"; 组+串 ("ABCD\0") char s[5];s="ABCD"; 错误 (数组名不可以赋值) char s[5]="ABCD!"; 组 ("ABCD!") char s[]="ABCD!"; 组+串 ("ABCD!\0") char s[]={ 'A','B','C','D'}; 组 ("ABCD")
2、字符串指针
2.1、字符串指针的定义
- char *p;
2.2、字符串指针的赋值
char *p=“ABCD”;
用字符串给指针赋值,指针只接收字符串的
首地址
char s[]="ABCD",*p=s; *(p+4)='\0'
3、字符串的输入与输出
3.1、利用scanf和printf函数
- 字符串在输出时,遇
\0
结束,\0
不输出char s[]="ABCD"; printf("%c\n",s[2]); printf("%s\n",s); printf("%s\n",s+1); 输出结果: C ABCD BCD char c[5]={ 'a','b','\0','c','\0'}; printf("%s\n",c); 输出结果: ab
3.2、字符串输入输出函数
带有
空格
的字符串不能用scanf
输入
字符串输入函数
gets
字符串输出函数
puts
(输出以后会自动换行)char s[80]; gets(s); puts(s);
4、字符串数组
char s[][5]={
"ABC","DEF"},*p=&s[0][0];
printf("%s\n",p+5);
输出结果:DEF
5、字符串函数
5.1、字符串长度函数strlen和sizeof函数
strlen是测试
字符串长度
函数strlen求字符串长度函数,遇
'\0'
结束,不包括'\0'
strlen("ABCD")=4 strlen("\t\"\xff\065\n")=5 strlen("\141\\141abc\t")=9 strlen("hello\0\t\'\\")=5
sizeof求所占的
空间字节数
char s[]="ABCD"; sizeof(s)=5 char t[10]="ABCD"; sizeof(t)=10
5.2、字符串复制函数strcpy
形式:strcpy(字符数组1,字符数组2)
作用:将
字符数组2
复制到字符数组1
中注意:字符数组1的
长度
不能小于字符数组2的长度char s[20]="ABC"; char t[20]="DEF"; strcpy(s,t); printf("%s,%s\n",s,t); 输出结果:DEF,DEF
5.3、字符串连接函数strcat
形式:strcat(字符数组1,字符数组2)
作用:把
字符串2
接到字符串1
之后注意:字符数组1必须足够打,以便连接后的新字符串;连接后字符串后面的
'\0'
取消,只保留新串最后的'\0'
char s[20]="ABC"; char t[20]="DEF"; strcat(s,t); printf("%s,%s\n",s,t); 输出结果:ABCDEF,DEF
5.4、字符串比较函数strcmp
形式:strcmp(字符串1,字符串2)
作用:比较字符串1和字符串2
- 串1>串2返回
1
- 串1>串2返回
-1
- 串1=串2返回
0
- 串1>串2返回
注意:两个字符串比较时按
ASCII码值大小
进行比较,不能用关系运算符
比较大小strcmp("ABC","ABB")=1 strcmp("ABC","ACB")=-1 strcmp("ABC","ABC")=0
边栏推荐
- Tutorial on principles and applications of database system (027) -- MySQL modifying data in tables (III): update
- 理解和应用持续集成-Tekton
- 自定义类型:结构体,枚举,联合
- Miller gingival recession and mucogingival junction
- 测试人遇到难以重现的bug,要怎么办?
- Miller gingival recession(牙龈退缩)与mucogingival junction(膜龈联合)
- 中职网络安全技能大赛P100-Dcore(轻型CMS系统)SQL注入
- 2020年网络搭建与应用——国赛samba答案
- Tutorial on principles and applications of database system (032) -- data integrity of MySQL (V): define auto_increment
- 力扣刷题7. 整数反转
猜你喜欢
随机推荐
裕华万宝风扇安装顺序
Flink1.15源码阅读——flink-annotations
函数方法封装——图片类型QPixmap、QImage与Mat的相互转化
使用Jmeter做性能测试的指标
LeetCode__ 301 weekly games 6112. Minimum total time required to fill the cup___ Greedy two methods
Tutorial on principles and applications of database system (030) -- data integrity of MySQL (III): defining unique constraints
LeetCode.1217. 玩筹码____简单贪心
Luogu p1873 [coci 2011/2012 5] Eko / tree cutting dichotomy
APScheduler怎么设置任务不并发
如何搭建简易又安全的企业内部文件服务器?
从镜像仓库工具、镜像下载加速工具、安全扫描工具理解镜像存储和镜像安全
中职网络安全技能大赛P100-Dcore(轻型CMS系统)SQL注入
测试人遇到难以重现的bug,要怎么办?
The development of the meta universe is also a process of gradually becoming people's production and lifestyle
10 个用于网络管理员进行高级扫描的端口扫描工具
DNS resolution process
【琐琐碎碎小知识】 关于部分Unity编辑器在创建瓦片地图时缺乏Tiles选项
Network security comprehensive penetration test cve-2017-12629 Apache Solr remote code execution
归一化原来这么重要!深入浅出详解Transformer中的Normalization
测试岗面试,一份好的简历总可以让人眼前一亮