您好,登錄后才能下訂單哦!
這篇文章主要講解了“如何使用字符串函數strcat”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“如何使用字符串函數strcat”吧!
C語言中的字符串函數有如下這些
獲取字符串長度
strlen
長度不受限制的字符串函數
strcpy
strcat
strcmp
長度受限制的字符串函數
strncpy
strncat
strncmp
字符串查找
strstr
strtok
錯誤信息報告
strerror
老規矩,我們還是看看文檔是怎樣說的,如下
strcat文檔
char * strcat ( char * destination, const char * source );Concatenate strings
連接字符串
Appends a copy of the source string to the destination string. The terminating null character in destination is overwritten by the first character of source, and a null-character is included at the end of the new string formed by the concatenation of both in destination.
追加一個源字符串的拷貝到目的字符串中。在目的字符串中的'\0'會被源字符串的第一個字符重寫,然后'\0'會在新字符串的最后面。
destination and source shall not overlap.
目的字符串和源字符串不應該重疊
可以知道
源字符串必須以 '\0'
結束。
雖然文檔沒說目標空間必須足夠大,但是想一想還是可以知道的,即目標空間必須有足夠大,能容納下源字符串的內容,不然就追加不上了
斷言指針不為空是個好習慣~
char* my_strcat(char* dest, const char* src) { assert(dest != NULL); assert(src); char* rest = dest; // 1. 找到目的字符串的'\0' while (*dest != '\0') { dest++; } // 2. 追加,就是字符串拷貝了,和之前的strcpy的實現一樣 while (*dest++ = *src++) { ; } return rest; } int main() { //char arr1[] = "hello"; //char arr2[] = "world"; //// 把arr2追加到arr1上 //strcat(arr1, arr2); //printf("%s\n", arr1); // 會報錯,空間不夠,上面的寫法是錯誤的 // 可以給arr1的大小固定一個大的空間,比如arr1[30] char arr1[30] = "hello\0xxxxxxxxx"; char arr2[] = "world"; // 把arr2追加到arr1上 //strcat(arr1, arr2); my_strcat(arr1, arr2); printf("%s\n", arr1); return 0; }
總的來說,實現的思路就是,把源字符串追加到目的字符串的后面,從而實現字符串連接。問題就在于如何找到目的字符串的尾部,很簡單,就直接找'\0'
,找到'\0'
就進行追加,追加就是直接復制源字符到目的空間,以此循環,復制直到遇到'\0'
就結束,這樣就完成了字符串的連接了。
感謝各位的閱讀,以上就是“如何使用字符串函數strcat”的內容了,經過本文的學習后,相信大家對如何使用字符串函數strcat這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。