1.strlen函数,字符串长度
需要string.h函数库;
返回字符串长度。
#include<string.h>
#include<stdio.h>
int main()
{
char a[]="hello";
int b=strlen(a);
printf("");
}
2.strcpy 和 strncpy函数,字符串复制
strcpy函数需要string.h函数库;
strcpy函数不能拷贝结束符\0,且遇到结束符自动拷贝结束。
char a[]="dsadfay\0sadfahdg";
char b[100];
strcpy(b,a);
strncpy函数需要string.h函数库;
strncpy函数可以拷贝结束符\0,但是对结束符后面的字符无能为力;
strncpy函数可以指定拷贝字符个数。
char a[]="dsadfay\0sadfahdg";
char b[100];
strncpy(b,a,sizeof(a));
3.strcmp 和 strncmp,字符串比较
字符串对应符号位ASCII码比较;
首次出现不等时ASCII码大的就大;
strncmp可以指定比较位数。
#include<stdio.h>
#include<string.h>
int main()
{
char s1[]="abcdefg";
char s2[]="abcde";
int flag1=strcmp(s1,s2);
int flag2=strncmp(s1,s2,5);
if(flag1>0) //这里,flag1可以换成flag2进行验证
{
printf("%s>%s\n",s1,s2);
}
else if(flag1<0)
{
printf("%s<%s\n",s1,s2);
}
else
{
printf("%s=%s\n",s1,s2);
}
return 0;
}
4.strcat 和 strncat函数,字符串追加
直接在字符串后面加上另一个字符串上的内容;
strncat可以指定追加个数。
#include<stdio.h>
#include<string.h>
int main()
{
char s1[]="hello";
char s2[]=" everyone,hhh";
strcat(s1,s2);
printf("s1=%s\n",s1);
strncat(s1,s2,strlen(" everyone"));
printf("s1=%s\n",s1);
return 0;
}
5.sprintf 和 sscanf 函数
sprintf函数是把要打印的东西储存在数组中;
#include<stdio.h>
#include<string.h>
int main()
{
int a=1;
char b='b';
char c[]="hello";
char d[100];
sprintf(d,"a=%d,b=%c,c=%s\n",a,b,c);
printf("%s",d);
return 0;
}
sscanf函数是把数组中的字符分配给变量;
sscanf函数执行分配数字作用时,分配格式要与定义格式相同,可以用空格和逗号进行分割;
sscanf函数执行分配字符串时,必须用空格进行分割。
#include<stdio.h>
#include<string.h>
int main()
{
char a="1 2 3";
//char a="1,2,3";char a="a=1,b=2,c=3";char a="he he he"
int b,c,d;
sscanf(a,"%d %d %d",&b,&c,&d);
//"%d,%d,%d";"a=%d,b=%d,c=%d";"%s %s %s",b,c,d这时要定义数组b,c,d
printf("%d %d %d\n",b,c,d);
return 0;
}
6.strchr 和 strstr 函数,查找字符与字符串
strchr查找字符;
strstr查找字符串。
#include<stdio.h>
#include<string.h>
int main()
{
int
return 0;
}
6.strtok 函数,字符串切割
首先,切割会引起源字符串结构的变化;
其次,切割会以结束符结尾。
#include<stdio.h>
#include<string.h>
int main()
{
char buf[]="abc,hello,tom,260";
char temp[100]; //用temp变量进行备份,防止破坏源字符串
char *p; //定义指针
strcpy(temp,buf); //首次调用字符串
p=strtok(temp,","); //注意,分割字符要用双引号
while(p!=NULL)
{
printf("p=%s\n",p);
p=strtok(NULL,","); //后面切割字符串,直接写NULL
}
return 0;
}