1. 程式人生 > >C語言--字串拷貝、字串查詢、字串比較、字串擷取

C語言--字串拷貝、字串查詢、字串比較、字串擷取

 在實際的應用當中,字元和字串的操作是最常用的技能。總結下來,提升能力。

一、字串拷貝

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; }