程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> strlen() 和 strcpy()函數的區別

strlen() 和 strcpy()函數的區別

編輯:C++入門知識

strlen() 和 strcpy()函數的區別,這兩個一個是返回一個C風格字符串的長度,一個是對一個C風格字符串的拷貝,兩個本來功能上是不同的,此外,他們還有一些細小的區別:不包含字符串結尾處的會拷貝str2中的‘\0’。

char *str = "hello";
int length = strlen(str);
char char_array[5];
strcpy(char_array,str);
printf("the new string is:%s\n",char_array);
cout<<"str's length is: "<<length<<endl;

說明字符串數組定義小了,換成大小為6的數組則恢復正常。

 

在此,建議在使用strcpy的時候,目標數組(第一個參數)的大小應該設置為strlen()函數返回值+1 的值,或者建議使用如下的初始化數組方式:

char char_array[sizeof("hello")];
char * char_array_two = new char[strlen(str) + 1];

 

參考資料:

http://baike.baidu.com/link?url=QfLOtNdldgq29v53l6wKhyeB7AFxrejppntX3mhL5DHw03heqHLyRGT4Vo1b38YxgQdY8aruLeoT5h6XqLzhka

http://blog.csdn.net/yasi_xi/article/details/9088291

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved