关于字符串函数
1. 字符串长度统计函数
a.格式:strlen(串首地址)
b.作用:计算\0之前的有效字符个数,即串长度
c.返回值:无符号整数
d.示例:
char a[10]="china";
printf("%d,%d",strlen(a),sizeof(a));
注意:strlen的值为5,统计内容的长度,sizeof的值为10,与空间有关,代表十个字节。
2. 字符串拷贝函数
a.格式:strcpy(串1首地址,串2首地址)或strcpy(串1首地址,“字符串常量”)
b.作用:将串2连同结束符一起从串1下标0位置开始进行覆盖
c.示例:
char s[80],t[80];
gets(s);
gets(t);
strcpy(s,t);
puts(s);
注意:连接时应该避免对本数组的错位覆盖,即内存重叠拷贝,否则程序崩溃。
3.字符串连接函数
a.格式:strcmp(串1首地址,串2首地址)
b.作用:将串1与串2左对齐,2个字符一组进行ASCII码值的大小比较,并"一战定胜负"。
c.示例
char s[80]="big",t[80]="small";
if(strcmp(s,t)>0)
puts(s);
else
puts(t);
d.返回值:串1>串2,返回值为1
串1<串2,返回值为-1
串1==串2,返回值为0
4.字母大小写转换函数
a.(大转小) strlen(串首地址)
char s[80];
gets(s);
strlwr(s);
puts(s);
b.(小转大) strupr(串首地址)
char s[80];
gets(s);
strupr(s);
puts(s);
c.注意
char *p="china";
strupr(p);
puts(p);
使用指针变量接收串常量参与函数运算时,由于常量存储空间,不能使用(即不能覆盖),则上例程序崩溃。
5.字符串逆置函数
a.格式:strrev(串首地址)
b.作用:字符串有效字符倒置
注意:上述函数引用时应增加 #include<string.h>
6.简单示例
统计长度为2的字串在主串中出现的次数
#include<stdio.h>
#include<string.h>
int main(void)
{
char s[80],t[2];
int i,j=0;
gets(s);
gets(t);
for(i=0;s[i];i+=2)/*使得统计无重复值*/
{
if(s[i]==t[0]&&s[i+1]==t[1])
/*当前值相等并且下一个值也相等*/
j++;
}
printf("个数=%d\n",j);
}