C語言--字串拷貝、字串查詢、字串比較、字串擷取
阿新 • • 發佈:2018-10-31
在實際的應用當中,字元和字串的操作是最常用的技能。總結下來,提升能力。
一、字串拷貝
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;
}