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;
}
運行結果: