本篇 ShengYu 介紹 C/C++ strcat 用法與範例,strcat 是用來連接兩個字串,或相加兩個字串的函式,以下介紹如何使用 strcat 函式。
C/C++ 要連接 c-style 字串可以使用 strcat 來完成,要使用 strcat 的話需要引入的標頭檔 <string.h>
,如果要使用 C++ 的標頭檔則是引入 <cstring>
,
strcat 函式原型為1
char * strcat(char * destination, const char * source);
strcat()
會將 source 字串連接在 destination 字串後,來看看下面的 strcat 用法範例吧!
如下範例,宣告一個 dest 後,用 memset()
初始化 dest 後,使用 strcat 將 str1 字串連接在 dest 字串後,之後再連接一個空格,最後再連接 str2,1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18// g++ cpp-strcat.cpp -o a.out
using namespace std;
int main() {
const char *str1 = "hello";
const char *str2 = "world";
char dest[64];
memset(dest, 0, sizeof(dest));
strcat(dest, str1);
strcat(dest, " ");
strcat(dest, str2);
printf("dest: %s\n", dest);
return 0;
}
結果如下,1
dest: hello world
新手常見的問題
以下是很多新手常常發生的一些問題,
請問以下範例有沒有問題?1
2char *str = "Hello ";
strcat(str, "World");
乍看沒問題,但這問題可大了,原因是 str 是一個指標,指向的 “Hello “ 是 const char *,不是一個字元陣列,
所以要怎麼改?答案如下,就是「分配一個夠大的字串陣列」,以下以 128 為例,而且同時要記得這個字元陣列要能夠塞得下你總共的字串,1
2char str[128] = "Hello ";
strcat(str, "World");
也可以將 str 用 malloc()
配置一塊記憶體,再使用 strcat 連接字串,1
2
3
4
5char *str = (char *) malloc(sizeof(char) * 32);
strcat(str, "Hello ");
strcat(str, "World");
free(str);
以上就是 C/C++ strcat 的用法與範例介紹,
如果你覺得我的文章寫得不錯、對你有幫助的話記得 Facebook 按讚支持一下!
其它參考
strcat - C++ Reference
https://www.cplusplus.com/reference/cstring/strcat/
其它相關文章推薦
如果你想學習 C++ 相關技術,可以參考看看下面的文章,
C/C++ 新手入門教學懶人包
C/C++ 字串連接的3種方法
C/C++ strcmp 用法與範例
C/C++ strtok 用法與範例
C/C++ strstr 用法與範例
C/C++ strcpy 用法與範例