字符数组和字符串

1.字符数组的定义和初始化

char 数组名[数组长度] 

 例:

int main()
{
	//和普通数组相同的初始化
	char arr[5];//没有初始化,5个值是随机值
	char brr[5] = { 'a','b','c','d','e' };//5个长度,分别初始化为a,b,c,d,e
	char crr[5] = { 'a','b','c' };//只初始化一部分,剩余元素会自动初始化为 0(对于字符数组,即'\0')
	char drr[] = { 'a','b','c' };//根据后面的长度自动推导

	//字符数组特有的初始化形式
	char err[5] = { "abcd" };//""表示字符串,''表示字符  
	char frr[5] = "abcd"; //和上面一样
	char str7[] = "abcd";
	const char* str8 = "abcd";//字符串常量    
}

由于brr也是一个数组,那么还是通过下标修改其元素的值

brr[0] = 'x';
brr[1] = 'y';
brr[2] = 'z';

2.字符串

用""包括的字符序列,可以包含0个或者多个字符.其末尾包含一个隐含的结尾标识字符'\0'。
 字符串只需要满足以下两个条件其中一点即可。

1.用""表示;如"abc".

2.字符数组中包含'\0'。

int main()
{
	char arr[] = "abc";//里面包含\0
	char brr[4] = { 'a','b','c','\0' };
	printf("%s\n", brr);//%s用于输出字符串
}

3.字符数组和字符串的区别

字符数组是否为字符串:1.如果有""(双引号包括起来的)肯定是

                                        2.看有没有'\0',有就是字符串,没有就不是字符串

例:

int main()
{
	char arr[] = { 'a','b','c','d' };//字符数组不是字符串
	char brr[] = "abcd";//字符串
	printf("%s\n", brr);//%s用于输出字符串

	char crr[] = { 'a','b','c','d','e','\0' };//字符数组也是字符串
	char drr[10] = { 'a','b','c' };//只初始化一部分,剩余部分为'\0',是字符数组也是字符串

	char err[10] = "abcd\0ef";//遇到\0结束输出只输出abcd
	printf("%s\n", err);
}

4.字符串函数

4.1字符串拷贝函数 strcpy()

源字符串(被复制的字符串)必须是以 '\0' 结尾的合法 C 字符串

例:

int main()
{
	char arr[10] = "abcd";
	char brr[10];
	strcpy(brr, arr);//把arr内容拷贝复制到brr中
	printf("%s\n", brr);
}

4.2字符串链接函数 strcat()

注:两个指针必须都是以字符串结尾标识符(\0)结尾的

例:

int main()
{
	char arr[10] = "abcd";
	char brr[10]="xyz";
	strcat(brr, arr);//把arr链接到brr后中
	printf("%s\n", brr);
}

4.3字符串长度 strlen()

注:"abc"->3 所见即所得,但实际长度为abc\0为4. 

int main()
{
	char arr[] = "abc";
	int count = 0;
	for (int i = 0; arr[i] != '\0'; i++)
		count++;
	printf("count=%d\n", count);
}

4.4字符串比较大小 

4.4.1 strcmp()

例:

int main()
{
	char arr[] = "abc";
	char brr[] = "abb";
	int s = strcmp(arr, brr);
	printf("%d\n", s);
}

4.4.2 strncmp()

例:

int main()
{
		char arr[] = "abc";
	char brr[] = "abb";
	int s = strncmp(arr, brr,3);
	printf("%d\n", s);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值