【c语言】<string.h>头文件中所有函数详解

本文详细介绍了C语言中<string.h>头文件中str开头和mem开头的一系列字符串处理函数,包括复制、合并、比较、查找、长度计算、错误处理和内存操作等,帮助读者理解这些常用函数的原型、功能和示例应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一 . str开头

1. strcpy() 复制

2. strncpy() 复制

3. strcat() 合并

4. strncat() 合并

5. strcmp() 比较

6. strncmp() 比较

7. strchr() 查找

8. strrchr() 查找

9. strcspn() 查找

10. strspn() 查找

11. strpbrk() 查找

12. strstr() 查找

13. strlen() 计算长度

14. strerror() 错误码

15. strtok() 截取

二. mem开头

1. memcpy() 复制

2. memcmp() 比较

3. memchr() 查找

4. memset() 替换

5. memmove() 替换


头文件<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);
}

运行结果:

<
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值