字符串处理函数

时间:2023-01-07 16:23:31

在调用字符串处理函数时候需要添加#include<string.h>;string.h函数库。
1.字符串复制函数语法格式:strcpy(str1,str2);// strcpy(目的字符数组名,源字符数组名);将源字符数组中的字符复制到目的字符数组中
注意:目的字符数组长度>=源字符数组长度;目的字符数组名必须写成数组名形式,而源字符数组名可是是字符数组名,也可以是字符串常量:strcpy(str1;“hello”);
参考程序

#include<stdio.h>
#include<string.h>
int main()
{
char str1[30],str2[30];
puts("输入目的字符串:");
gets(str1);
puts("输入源字符串:");
gets(str2);

puts("输出目的字符串:");
puts(str1);
puts("输出源字符串:");
puts(str2);

strcpy(str1,str2);

puts("调用strcpy函数后,输出目的字符串:");
puts(str1);

return 0;
}

小结:使用printf();函数和puts();函数输出字符串:

for(i=0;i<n;i++)    //使用%c单个字符逐个输出
{
printf("%c",a[i]);
}

printf("%s",a); //使用%s全部输入字符串

puts(a);

使用printf单个输出时,需要写出数组名和下标,下面两种则不需要,只需要写出数组名;
使用scanf函数和gets函数输入字符串:

    for(int i=0;i<10;i++)
{
scanf("%c",&a[i]);
}

scanf("%s",&b);

gets(c);

2.字符串连接函数语法格式:strcat(str1,str2);//strcat(目的字符数组名,源字符数组名);将源字符数组中的字符复制到目的字符数组中。
注意:目的字符数组长度应有足够长,不然装不下连接后的字符串;
参考程序

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

int main()
{
char str1[30],str2[30];
puts("输入目的字符串:");
gets(str1);
puts("输入源字符串:");
gets(str2);

puts("输出目的字符串:");
puts(str1);
puts("输出源字符串:");
puts(str2);

strcat(str1,str2);

puts("调用strcat函数后,输出目的字符串:");
puts(str1);

return 0;
}

3.字符串比较语法格式:strcmp(str1,str2);
比较就是将一个字符串与另一个字符串从首字母开始,按照ASCII码的顺序逐个比较;
str1=str2,返回值为0;
str1>str2,返回值为正数;
str1

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

int main(){

char str1[30],str2[30];

puts("输入目的字符串:");
gets(str1);
puts("输入源字符串:");
gets(str2);

puts("输出目的字符串:");
puts(str1);
puts("输出源字符串:");
puts(str2);

printf("%d",strcmp(str1,str2));

return 0;

}

4.字符串长度函数:计算字符串的实际长度(不含字符串结束标识“\0”)
语法格式:

int num;
char str1;
scanf("%s",&str1);
num=strlen();

使用strlen函数和sizeof函数计算字符串长度区别:

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

int main(){

int size1,size2;
char a[7]={"mrsoft"};
char b[7]={"0"};

size1=sizeof(a);
printf("使用sizeof函数计算字符串a的长度为:%d\n",size1);

size2=strlen(a);
printf("使用strlen函数计算字符串a的长度为:%d\n",size2);

for(int i=0;i<size1;i++)
{
b[size1-i-2]=a[i];
}

puts(a);
puts(b);

return 0;

}

程序显示结果:

字符串处理函数
可以看到使用sizeof计算字符串长度比strlen多1;