1、函數原型
#include <stdio.h> char *strcat(char *s1, const char *s2) //函數返回類型為指針,形參為兩個指針(為字符串數組的數組名,相當於指向數組第一個元素的指針) { char *tmp = s1; //將指針tmp賦值為s1指針,也就是指向字符串數組*s1第一個字符的指針 while(*s1) s1++; // 指針s1從指向字符串數組第一個元素逐漸遞增到指向字符串數組末尾的null的空指針。 while(*s1++ = *s2++) // 從指針s1當前的位置開始,字符串數組s2的元素一次復制給字符串s1,直到s2指針指向null。 ; return tmp; // 返回指針tmp,指向字符串數組*s1第一個元素的指針 } int main(void) { char str1[128] = "abcdefg"; char str2[128] = "123456789"; printf("concatenate result: %s\n", strcat(str1, str2)); // 函數傳輸字符串數組名,相當於指向數組第一個元素的指針。 return 0; }
2、加載strcat函數的頭文件<string.h>,可以直接調用strcat函數
#include <stdio.h> #include <string.h> // strcat函數的頭文件 int main(void) { char str1[128] = "abcd"; char str2[128] = "1234"; printf("concatenate result: %s\n", strcat(str2, str1)); // 函數調用時給與的實參是字符串數組名,相當於指向數組第一個元素的指針。 return 0; }