C言語--文字列コピー、文字列検索、文字列比較、文字列切り取り


実際の応用では,文字や文字列の操作が最もよく用いられる技能である.まとめて、能力を高める.
一、文字列コピー
1、memcpy
2、strcpy
区別する
二、文字列検索
三、文字列比較
四、文字列の切り取り
1、簡単で機知に富んだ方法–strncpy
 strncpy関数は、N文字を別の文字配列にコピーするライブラリ関数です.その性質を利用して文字列を切り取る目的を達成することができます:
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;
}