版权声明:本文为博主原创文章,未经博主允许不得转载。 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;
}