C语言--字符串拷贝、字符串查找、字符串比较、字符串截取

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_28877125/article/details/82861512

 在实际的应用当中,字符和字符串的操作是最常用的技能。总结下来,提升能力。

一、字符串拷贝

1、memcpy

2、strcpy

区别


二、字符串查找


三、字符串比较


四、字符串截取

1、一种简单而又机智的方法–strncpy

 strncpy函数是拷贝N个字符到另一个字符数组中的库函数。利用它的性质可以达到截取字符串的目的:
 首先:从源串中拷贝3个字符到终串中去(不能拷贝4个,否则会出现乱码!)

char dest[4] = {0};
char src[] = "123456789";
strncpy(dest, src, 3);
puts(dest);

输出:

123

 然后尝试,在源串+3,再拷贝到终串中去。

char dest[4] = {0};
char src[] = "123456789";
strncpy(dest, src+3, 3);
puts(dest);

输出:

456

最后,一个最简单的字符截取方法就出来了。

2、另外的方法

(1)从左边截取n个字符
char *left(char *dst,char *src,int n)
{
	char *p=src;
	char *q=dst;
	int len=strlen(src);
	if(n>len) n=len;
	while(n--) *(q++)=*(p++);
	*(q++)='\0';
	return dst;
}

(2)从右边截取n个字符

char *right(char *dst,char *src,int n)
{
	char *p=src;
	char *q=dst;
	int len=strlen(src);
	if(n>len) n=len;
	p+=(len-n);
	while(*(q++)=*(p++));
	return dst;
}

(3)子字符串截取,长度,开始

char *substring(char *dst,char *src,int start,int len)
{  
	char *p=dst;  
	char *q=src;  
	int length=strlen(src); 
	if(start>=length||start<0) 
		return NULL;  
	if(len>length) 
		len=length-start; 
	q+=start;
	while(len--)  
	{   
		*(p++)=*(q++); 
	}  
	*(p++)='\0';  
	return dst;
}

猜你喜欢

转载自blog.csdn.net/qq_28877125/article/details/82861512