這篇文章主要講解了“如何使用字符串函數(shù)strcat”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“如何使用字符串函數(shù)strcat”吧!
我們提供的服務(wù)有:成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)、微信公眾號(hào)開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、平南ssl等。為成百上千企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的平南網(wǎng)站制作公司
C語(yǔ)言中的字符串函數(shù)有如下這些
獲取字符串長(zhǎng)度
strlen
長(zhǎng)度不受限制的字符串函數(shù)
strcpy
strcat
strcmp
長(zhǎng)度受限制的字符串函數(shù)
strncpy
strncat
strncmp
字符串查找
strstr
strtok
錯(cuò)誤信息報(bào)告
strerror
老規(guī)矩,我們還是看看文檔是怎樣說(shuō)的,如下
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.
追加一個(gè)源字符串的拷貝到目的字符串中。在目的字符串中的'\0'會(huì)被源字符串的第一個(gè)字符重寫,然后'\0'會(huì)在新字符串的最后面。
destination and source shall not overlap.
目的字符串和源字符串不應(yīng)該重疊
可以知道
源字符串必須以 '\0'
結(jié)束。
雖然文檔沒(méi)說(shuō)目標(biāo)空間必須足夠大,但是想一想還是可以知道的,即目標(biāo)空間必須有足夠大,能容納下源字符串的內(nèi)容,不然就追加不上了
斷言指針不為空是個(gè)好習(xí)慣~
char* my_strcat(char* dest, const char* src) { assert(dest != NULL); assert(src); char* rest = dest; // 1. 找到目的字符串的'\0' while (*dest != '\0') { dest++; } // 2. 追加,就是字符串拷貝了,和之前的strcpy的實(shí)現(xiàn)一樣 while (*dest++ = *src++) { ; } return rest; } int main() { //char arr1[] = "hello"; //char arr2[] = "world"; //// 把a(bǔ)rr2追加到arr1上 //strcat(arr1, arr2); //printf("%s\n", arr1); // 會(huì)報(bào)錯(cuò),空間不夠,上面的寫法是錯(cuò)誤的 // 可以給arr1的大小固定一個(gè)大的空間,比如arr1[30] char arr1[30] = "hello\0xxxxxxxxx"; char arr2[] = "world"; // 把a(bǔ)rr2追加到arr1上 //strcat(arr1, arr2); my_strcat(arr1, arr2); printf("%s\n", arr1); return 0; }
總的來(lái)說(shuō),實(shí)現(xiàn)的思路就是,把源字符串追加到目的字符串的后面,從而實(shí)現(xiàn)字符串連接。問(wèn)題就在于如何找到目的字符串的尾部,很簡(jiǎn)單,就直接找'\0'
,找到'\0'
就進(jìn)行追加,追加就是直接復(fù)制源字符到目的空間,以此循環(huán),復(fù)制直到遇到'\0'
就結(jié)束,這樣就完成了字符串的連接了。
感謝各位的閱讀,以上就是“如何使用字符串函數(shù)strcat”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)如何使用字符串函數(shù)strcat這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!