C语言学习05——字符数组与字符串

1.C语言中没有专用的字符串类型

所以只能通过字符数组来模拟字符串变量

2.'\0' 字符表示0元素,对应的整数是0 ,\表示转义

而'0'字符对应的整数位48

复制代码
int main(){
	printf("%d\n",'\0'); //0
	printf("%d\n",'0'); //48
	return 0;
}

3.当字符数组中存在0元素时,可当作字符串使用,字符数组中的0元素表示了一个字符串的结束,字符数组中的元素不一定是字符串中的元素

例如:char ss[]={'D','.','\0','.','\0'}这个字符串为"D.",'.'虽然是字符数组中的元素,但不是字符串中的元素

4.字符串分为字符串常量和字符串变量,常量是由""引起来的,变量是由字符数组模拟的

5.数组中后面隐藏了0元素,即'\0'

复制代码
int main(){
	char dt[]="abcd";
	char name[]={"efg"}; //等价于 char name[]="efg";
	int ds=sizeof(dt);
	int ns=sizeof(name);
	printf("dt=%s\n",dt); //abcd
	printf("name=%s\n",name); //efg
	printf("dt size=%d\n",ds); //5
	printf("name size=%d\n",ns); //4
	return 0;
}

打印dt数组为:97 98 99 100 0

当dt作为字符串时:长度为:4

复制代码
int i=0;
	while(dt[i]!=0)
		i++;
	printf("dt length=%d\n",i); //4

结论:字符串的长度小于字符数组大小,一个字符数组不一定是一个字符串,而一个字符串一定是一个字符数组。

字符串变量的值是可以改变的

复制代码
char name[]={"efg"};
name[0]='x';
name[1]='y';
name[2]='z';
printf("name=%s\n",name); //xyz

6.C语言中没有对字符串的专用运算操作

但是字符串工具包"string.h"中有对应的操作

strlen(s)->获取字符串长度

strcpy(s1,s2)->将s2中的字符复制到s1

strcat(s1,s2)->将s2追加到s1后面,即s1<-s1+s2

strcmp(s1,s2)->比较s1和s2是否相等,相等时为0

复制代码
#include <stdio.h>
#include <string.h>
int main(){
	char s[10]="abcd";
	int size=sizeof(s);
	int len=strlen(s);
	printf("size=%d\n",size); //10
	printf("len=%d\n",len); //4
	return 0;
}

int main(){
	char s[10]="abcd";
	char d[]="efg";
	printf("s=%s\n",s);
	printf("len=%d\n",strlen(s));
	
	strcpy(s,d);
	strcat(s,d);
	printf("s=%s\n",s); //efgefg
	printf("len=%d\n",strlen(s)); //6
	return 0;
}
相关推荐
三品吉他手会点灯13 小时前
C语言学习笔记 - 40.数据类型 - scanf函数的编程规范与非法输入处理
c语言·开发语言·笔记·学习
♛识尔如昼♛16 小时前
C 进阶(9) - 信号
c语言·信号
qeen8719 小时前
【算法笔记】各种常见排序算法详细解析(下)
c语言·数据结构·c++·笔记·学习·算法·排序算法
Legendary_00821 小时前
解析 PD Sink 与 LDR6500U:Type-C 取电的核心密码
c语言·开发语言
basketball6161 天前
C++ 强制类型转换:从 C 风格到 C++ 四大金刚
java·c语言·c++
AI科技星1 天前
全域数学公理:基于32维超复数与易经卦爻的宇宙大一统理论(整理版)
c语言·开发语言·线性代数·量子计算·agi
LuminousCPP1 天前
数据结构 - 线性表第二篇:动态顺序表进阶接口实现
c语言·数据结构·笔记·顺序表·线性表
AI科技星1 天前
全域粒子质量几何曲率统一公式体系(通俗易懂版)
c语言·开发语言·网络·量子计算·agi
weixin_386468961 天前
openharmony 6.0编译rk3568过程记录
c语言·c++·git·python·vim·harmonyos·openharmony
Byte Wizard1 天前
C语言内存函数
c语言