C語言 - 字符串操作

strncpy strncat strncmp strnlen是較爲安全的字符串函數

int main(void){
char *src = "zhouxudong";
	char dst[] = "huawei";

	strncat(dst, src, strnlen(src, 5));
	printf("%s\n", dst);
	strncpy(dst, src, strlen(src));

	printf("%s\n", dst);
	printf("%s\n", src);

	printf("%d\n", strlen(src));
	
	
	char *str1 = "Hello world";
	char *ans1,*ans2;

	ans1 = strrchr(str1, 'l');				// 獲取最後一個'l'所在的地址,ans1爲指針
	ans2 = strchr(str1, 'l');				// 獲取第一個'l'所在的地址
	printf("%s\n", ans1);
	printf("%s\n", ans2);

	char *ans;
	ans = strpbrk(str1,"aelw");				// 獲取str1中,任何一個在"aelw"中的字母的地址
	printf("%s\n", ans);

	int len;
	char buffer[] = "25,142,122.china";

	len = strspn(buffer,"0123456789");		// 獲取buffer中,以"0123456789"開頭的字母數
	printf("%d\n",len);

	printf("%s\n",buffer+len);				


	char numberspace[] = "1234567890";
	char *token;
	for (token = strtok(buffer, numberspace); token != NULL; token = strtok(NULL, numberspace))			// 獲取buffer中,阿拉伯數字之間相隔的地址.
		printf("Next token is %s\n",token);
}

strnlen(src,5),獲取字符串src長度,如果大於5,那麼返回5,否則返回src的字符串長度(不算null)

strncat(dst, src, strnlen(src, 5)),將src的前5個字符複製到dst的後面,並加上一個null。

strncpy(dst, src,10),是將src前10個字符拷貝到dst中。但並不會加上null。【這點與strcpy不一樣,strcpy是帶上null的拷貝】

輸出結果:

huaweizhoux
zhouxudongx
zhouxudong
10
ld
llo world
ello world
2
,142,122.china
Next token is ,
Next token is ,
Next token is .china

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章