字符串函数

目录
一,字符串函数的介绍
1,strlen
(1)strlen函数的使用
(2)
2,strcpy(strncpy)
3, strcat(strncat)
4,strcmp(strncmp)
5,strstr
6,strtok
7,strerror
二,内存操作函数
1,memcpy
2,memmove
3,memcmp
4,memset

一,字符串函数
在C语言中非常需要字符函数与字符串,但C语言没有字符串类型C语言规定了’\0’作为结束符。字符串处理函数包含在<string.h>头文件中,常见的处理字符数组有:

strlen  
1   size_t strlen(const char* str)

功能:计算字符串的长度,不包括’\0’
返回值:返回字符串的字符数
说明:

  • strlen()函数计算的是字符串的实际长度,不包括’\0’,遇到第一个’\0’结束
  • 参数指向的字符串必须以’\0’结束;
  • 函数的返回值一定是size_,无符号的
  • 假如你定义没有给它初始化,这个结果随机值,它会从首地址一直找下去,直到遇到’\0’才会停止

strlen函数的使用

1 int main()
{
	//定义一组字符串
	char arr1[]="sanfeng";
	//表示数组首元素的地址是s,放入strlen函数
	int ret = strlen(arr1);
	//定义一个整型,接受函数的返回值
	
	return 0;
}

strlen的模拟实现

1 size_t my_strlen(const char* str)
{
	int count=0;
	while(*str !='\0')
	{
		count++;
	}
	return 0;
}

strcpy函数的使用

1  char* strcpy(char* dest,const char* src)

功能:将参数src字符串拷贝到参数dest所指的地址
返回值:返回参数dest字符串的起始地址
说明:

  • 源字符串必须以’\0’结束
  • 会将源字符串的’\0’拷贝到目标空间
  • 目标空间必须可变
  • 如果参数dest所指的内存空间不够大,可能会造成缓冲溢出的错误请况,或者用strncpy()来取代
#include <stdio.h>
#include <string.h>
1 int main()
2{
3	char att1[20]="#################";
4	char att2[]="hello sanfeng";
5	strcpy(att1,att2);
6	printf("%d\n",att1);
7}
8

strcpy函数的模拟实现

char* my_strcpy(char* dest, const char* src)
{
	assert(dest && src);
	char* rem = dest;
	while(*src)
	{
		dest=src;
		dest++;
		src++;
	}
	return rem;
}
1 int main()
{
	char att1[20]="########################";
	char att2[]="hello zhangsan";
	my_strcpy(att1,att2);
	printf("%s\n",att1);
}

strncpy函数

1   char* strncpy(char* dest, const char* src, size_t num)

功能:拷贝src字符串的前num个字符到dest
返回值:dest字符的起始地址
说明:

  • src字符串小于num,拷贝完字符串后,在目标后追加’\0’直到num个
  • src和dest所指向的内存区域不能重叠,并且dest必须有足够的空间放置num个字符

strncpy函数

1 int main()
{
	char att1[20]="##################";
	char att2[]="hello san";
	strncpy(att1, att2, 5);
	printf("%s\n",att1);
}
//拷贝att2中的5个字符到att1,输出的结果为 hello

strcat

1 char* strcat(char* dest ,const char* src)

功能:字符串拼接
返回值:返回dest字符串起始地址
说明:

  • 源字符串必须’\0’结束
  • 目标空间必须可修改
  • strcat()将会参数src字符串拷贝到参数dest所指的字符串尾部
  • dest最后的结束字符’\0’会被src的字符串覆盖,并且连接后的字符串的尾部再增加一个’\0’

strcat函数的使用

1 int main()
{
	char att1[20]="hello";
	char att2[]="sanfeng";
	strcat(att1,att2);
	printf("%d\n",att1);
	//输出结果为hello san feng
}

strncat

1 char* strncat(char* dest, char* srce, size_t)

功能:将n个字符串拷贝到字符串的结尾
返回值:返回dest字符串的起始地址
说明:

  • strncat会将从src字符串的开头拷贝n个字符到dest的尾部
  • dest要有足够的空间来容纳拷贝的字符串
  • 如果n大于字符串src的长度,那么仅将src全部字符加到dest的尾部,它会自动补0
  • strncat会将dest字符串尾部的’\0’覆盖,字符自己完成后,再加说’\0’
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值