【自用】C语言初级入门6(下)

本文介绍了二维字符数组的初始化、输入输出方法,以及C语言中的几个关键字符串处理函数:strcat用于字符串连接,strcpy用于字符串复制,strcmp用于字符串比较,strlen用于计算字符串长度,strlwr和strupr分别用于字符串的小写和大写转换。每个函数都通过示例代码展示了其功能和用法。
摘要由CSDN通过智能技术生成

二维字符数组的初始化一般有以下两种方法:

char a[3][6] = { { 'X', 'i', 'a', 'n'}, { 'M', 'i', 'n','g'}, {'d', 'e'} }; //用字符初始化

char b[3][6] = { "Xian", "ming", "de" }; //用字符串初始化

二维字符数组在初始化时,未提供初值的元素自动取值为‘\0’

二维数组的输入,可以使用以下两种方法:

int i;
char a[3][6];

方法1:

for (i = 0; i < 3; i++)
		scanf("%s", a[i]);

 方法2:

for (i = 0; i < 3; i++)
		gets(a[i]);

二维字符数组的输出,可以使用以下的3种方法:

方法1:

int n, m;
	for (n = 0; n < 3; n++) {
		for (m = 0; a[n][m] != '\0'; m++)
			printf("%c", a[n][m]);
		printf("\n");

方法2:

int n;
	for (n = 0; n < 3; n++)
		printf("%s\n", a[n]);

方法3:

int n;
	for (n = 0; n < 3; n++)
		puts(a[n]);

字符串连接函数strcat,调用形式如下:

strcat(字符数组名,字符数组名或字符串常量)

功能:将第2项中的字符串连接到第一项中的字符串尾部。第一项中的字符数组必须定义得足够大,以便容纳连接后的结果。

写一个简单的例子:

#include <stdio.h>
#include <string.h>

int main() {
	char a[100] = "iphone", b[5] = "plus";
	strcat(a, b);
	puts(a);
	strcat(a, "max");
	puts(a);
	return 0;
}

输出结果。

再写一个简单的例子:

#include <stdio.h>
#include <string.h>

int main() {
	int i;
	char a[16] = "iphone\0plus", b[7] = "change";
	strcat(a, b);
	puts(a);
	return 0;
}

输出结果。


字符串复制函数strcpy,该函数的调用形式如下:

strcpy(字符数组名,字符数组名或字符串常量) 

功能:将第2项中的字符串复制到第1项中的字符数组中。第1项中的字符数组必须定义得足够大,以便容纳复制过来的字符串。

写一个简单的例子:

#include <stdio.h>
#include <string.h>

int main() {
	int i;
	char a[14] = "iphoneplus", b[7] = "change";
	puts(a);
	strcpy(a, b);
	for (i = 0; i < 14; i++) {
		if (a[i] == '\0')
			printf("空");
		else
			printf("%c", a[i]);
	}
	return 0;
}

输出的结果。


字符串比较函数strcmp, 该函数的调用形式如下:

strcmp(字符数组名或字符串常量,字符数组名或字符串常量)

功能:比较两个字符串的大小。

比较规则:两个字符串从左到右逐个字符比较(按ASCII码值比较大小),直到出现不同字符或遇到'\0'为止。

如果第1项=第2项,函数值为0;

如果第1项>第2项,函数值为正整数;

如果第1项<第2项,函数值为负整数。

写一个简单的例子:

#include <stdio.h>
#include <string.h>

int main() {
	printf("相等时,数值为%d\n第1项较大时,数值为%d\n第1项较小时,数值为%d", strcmp("abc", "abc"), strcmp("ac", "ab"),
	       strcmp("a", "ab"));
	return 0;
}

输出结果。


测字符串长度函数strlen, 该函数的调用形式如下:

strlen(字符数组名或字符串常量)

功能:测字符串长度。字符串长度是字符串中包含的字符个数(不包括'\0'在内)。

写一个简单的例子:

#include <stdio.h>
#include <string.h>

int main() {
	char s1[20] = {"\nxyz\101\0abc"};
	printf("测试字符串长度是%d\n", strlen("abc"));
	printf("s1的长度是%d", strlen(s1));
	return 0;
}

 输出结果。

s1数组中,'\n'、'x'、'y'、'z'、'\101' 各是一个字符,遇到'\0'字符串结束,其后的字符不再统计。


大写字母转小写字母函数strlwr, 该函数的调用形式如下:

strlwr(字符数组名)

功能:将字符串中的大写字母转换成小写字母。

小写字母转大写字母函数strupr, 该函数的调用形式如下:

strupr(字符数组名)

功能:将字符串中的小写字母转换成大写字母。

写一个简单的例子:

#include <stdio.h>
#include <string.h>

int main() {
	int i;
	char s1[15] = "iphone\0plusmax", s2[] = "HEllo", s3[] = "heLLO";
	printf("s2原来是%s\n", s2);
	strlwr(s2);
	printf("s2经过小写转换后是%s\n", s2);
	printf("s3原来是%s\n", s3);
	strupr(s3);
	printf("s3经过大写转换后是%s\n", s3);
	for (i = 0; i < 15; i++) {
		if (i == 0) {
			printf("s1原来是   %c", s1[i]);
			continue;
		}

		if (s1[i] == '\0')
			printf("空");
		else
			printf("%c", s1[i]);
	}
	strupr(s1);
	for (i = 0; i < 15; i++) {
		if (i == 0) {
			printf("\ns1经过大写转换后是   %c", s1[i]);
			continue;
		}
		if (s1[i] == '\0')
			printf("空");
		else
			printf("%c", s1[i]);
	}
	return 0;
}

输出结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值