【C语言】数组知识总结(3)——字符串处理函数

前言

C语言中没有对字符串进行赋值、合并和比较的运算符,但提供了一些用于处理字符串的标准函数。调用字符串处理函数时程序开头要包含下面的预处理头文件:

#include<string.h> 

1. 字符复制函数 strcpy()


  • 一般格式:strcpy(字符串1,字符串2)
  • 功能:将字符串2复制到字符串1
  • 参数字符串2可以是字符数组名,也可以是字符串常量。但参数字符串1必须是字符数组名
  • 字符串1必须有足够的空间容纳字符串2
  • 复制时直到遇到字符串2 中的’\0’为止(包含’\0’)

#include<stdio.h>
#include<string.h>
int main()
{
    
    
	char c1[]="123456789";
	strcpy(c1+4,"hello");//把字符串"hello"复制到c1+4开始的位置
	puts(c1);
	return 0;
}

结果:

1234hello   //'\0'将9替换了

  • 一般格式:strncpy(字符串1,字符串2,n)
  • 功能:将字符串2的前n个字符复制到字符串1中

#include<stdio.h>
#include<string.h>
int main()
{
    
    
	char str1[10]="abcdefg",str2[]="ABCDEF";
	strncpy(str1,str2,4);
	puts(str1);
	return 0;
}

结果:

ABCDefg

2. 字符串连接函数 strcat()


  • 一般格式:strcat(字符串1,字符串2)
  • 功能:连接两个字符串
  • 参数字符串2可以是字符数组名,也可以是字符串常量。但参数字符串1必须是字符数组名
  • 字符串1必须有足够的空间容纳字符串2
  • 连接时用字符串2的首字符覆盖字符串1的结束标志’\0’,系统在新字符串的末尾添加一个字符串的结束标志’\0’

#include<stdio.h>
#include<string.h>
int main()
{
    
    
	char c1[20]="hello,";
	strcat(c1,"how are you!");
	puts(c1);
	return 0;
}

结果:

hello,how are you!

3. 字符串比较函数 strcmp()


  • 一般格式:strcmp(字符串1,字符串2)
  • 功能:比较两个字符串的大小(不是长度)
  • 字符串比较规则:从两个字符串的首字符开始,依次比较对应字符的ASCII码,直到出现不同的字符或’\0’为止。如果所有的字符都相同,返回0;否则,以第一个不相同字符的比较结果为准,返回这两个字符的差(字符串1的减字符串2的)
  • 函数返回值为一个整数:
    1.当字符串1<字符串2时,返回值<0
    2.当字符串1=字符串2时,返回值=0
    3.当字符串1>字符串2时,返回值>0

#include<stdio.h>
#include<string.h>
int main()
{
    
    
	char c1[] = "12345", c2[] = "12345";
	printf("%d\n", strcmp(c1, c2));
	printf("%d\n", strcmp("zhang", "zhap"));
	printf("%d\n", strcmp("zhap", "zhang"));
	return 0;
}

结果:

0
-1 //n<p
1

为什么是1而不是2?


可能与具体的编译器有关,我这里用的是VS2022.(下次再详细谈谈)


4. 求字符串长度函数 strlen()


  • 一般格式:strlen(字符串)
  • 功能:计算字符串长度,不包括结束标志’\0’

#include<stdio.h>
#include<string.h>
int main()
{
    
    
	char c1[] = "12345";
	printf("%d,%d\n", strlen(c1),sizeof(c1));
	printf("%d,%d\n", strlen("12345"), sizeof("12345"));
	return 0;
}

结果:

5,6
5,6

5. 大写字母转小写字母函数 strlwr()


  • 一般格式:strlwr(字符串)
  • 功能:将大写字母转换为小写字母

#include<stdio.h>
#include<string.h>
int main()
{
    
    
	char c1[] = "AaBbCc";
	printf("%s\n", c1);
	printf("%s\n", strlwr(c1));
	return 0;
}

结果:

AaBbCc
aabbcc

6. 小写字母转大写字母函数 strupr()


  • 一般格式:strupr(字符串)
  • 功能:将小写字母转换为大写字母

#include<stdio.h>
#include<string.h>
int main()
{
    
    
	char c1[] = "AaBbCc";
	printf("%s\n", c1);
	printf("%s\n", strupr(c1));
	return 0;
}

结果:

AaBbCc
AABBCC

猜你喜欢

转载自blog.csdn.net/m0_74102736/article/details/130330355