c語言字符串處理函數strcpy和strncpy

No2:字符串拷貝函數
1、strcpy

函數概要:
strcpy 函數用於拷貝字符串,包含最後的結束符 ‘\0’
爲了避免溢出,必須確保用於存放的數組長度足以容納待拷貝的字符串(注意:長度需要包含結束符 ‘\0’)。
源字符串和目標數組的位置不應該重疊。

#include<stdio.h>
#include<string.h>
int main()
{
	char str1[] = "I love";
	char str2[] = "you!";
	strcpy(str1,str2);
	printf("複製後的str1 = %s",str1);
	return 0;
 } 

在這裏插入圖片描述
2、strncpy

函數概要:
和 strcpy 函數一樣,strncpy(str1, str2, n) 函數將拷貝源字符串的 n 個字符到目標數組中。如果源字符串的長度小於 n,那麼就用 ‘\0’ 填充額外的空間。如果源字符串的長度大於或等於 n,那麼只有 n 個字符被拷貝到目標數組中(注意:這樣的話將不會以結束符 ‘\0’ 結尾)。
其中:str1是存放字符串的目標數組,str2是待拷貝的源字符串,n是拷貝的字符串長度。

:爲了使該函數更“安全”,建議使用 dest[sizeof(dest) - 1] = ‘\0’; 語句確保目標字符串是以 ‘\0’ 結尾。
源字符串和目標數組的位置不應該重疊。

附上實例代碼:

#include<stdio.h>
#include<string.h>
int main()
{
	char str1[] = "everybody look at me now!";
	char str2[] = "nothing is impossible";
	strncpy(str1,str2,20);
	printf("複製後的str1 = %s",str1);
	return 0;
 } 

運行結果:
在這裏插入圖片描述

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