目录
头文件<string.h>中有两大类字符串函数。一类为str开头的函数,一类men开头的函数。men开头的函数,效率会更高一些。
参数中 size_t 是一种无符号整数类型,确保不会出现负数。
一 . str开头
1. strcpy() 复制
原型:char * strcpy(char *dest, char *src);
功能:src指向的字符 复制到dest中
返回:dest
#include<stdio.h>
#include<string.h>
int main(void)
{
char desn[10];
char* source="hello world!";
strcpy(desn,source);
printf("源字符串 :%s\n",source);
printf("目标字符串:%s\n",desn);
return 0;
}
结果:
2. strncpy() 复制
原型:char * strncpy(char *dest, char *src, size_t maxsize)
功能:src指向的字符 复制到dest中,并返回dest,限制最大字符串长度 maxsize。当src中少于maxsize时,使用‘\0’填充。其中size_t是无符号整型,保证maxsize始终为正数。
返回: dest
示例:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
char * src="hello,world!";
char dest[20];
strncpy(dest, src, 20);
printf("源字符串 :%s\n",src);
printf("目标字符串:%s\n",dest);
system("pause");
return(0);
}
运行结果:
3. strcat() 合并
原型:char *strcat(char *dest, const char *src)
功能:将字符串src 连接到dest的尾部。
返回: dest
示例:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
char * src="world" ;
char dest[50] ="hello,"; /*目标字符串必须声明足够的长度,足够连接src字符串长度*/
strcat(dest, src);
printf("目标字符串:%s\n",dest);
system("pause");
return(0);
}
运行:
4. strncat() 合并
原型:char *strcat(char *dest, const char *src,size_t maxsize)
功能:将字符串src 最多前maxsize个字符 连接到dest的尾部。src中必须有字符串结束符'\0'
返回: dest
示例:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
char * src="world" ;
char dest[50] ="hello,"; /*目标字符串必须声明足够的长度,足够连接src字符串长度*/
strncat(dest, src,3);
printf("目标字符串:%s\n",dest);
system("pause");
return(0);
}
运行:
5. strcmp() 比较
原型:int strcmp(const char *str1, const char *str2)
功能:比较字符串str1和str2
返回: 当str1<str2,返回值小于0
当str1=str2,返回值等于0
当str1>str2,返回值大于0
示例:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
char * str1 ="hello,world!" ;
char * str2 ="hello,human!";
int res= strcmp(str1, str2);
if(res<0)
printf("str1小于str2");
else if(res==0)
printf("str1等于str2");
else
printf("str1大于str2");
printf("\n");
system("pause");
return(0);
}
运行结果:
<