我想在 C 中使用 strcat() 連接 2 個字串,但它總是在新連接字串的開頭添加一些隨機字符。有人可以告訴我為什么會發生這種情況以及如何解決嗎?
這是我的代碼:
#include "stdio.h"
#include "string.h"
int main(void)
{
char text[100];
strcat(text, "Line 1");
strcat(text, "Line 2");
printf("%s", text);
return 0;
}
當我執行此操作時,我得到以下輸出:
??? Line1Line2
我將不勝感激任何幫助。
謝謝你。
uj5u.com熱心網友回復:
線
strcat(text, "Line 1");
具有未定義的行為,因為strcat函式呼叫的兩個引數都必須指向字串,即指向以空字符結尾的字符序列。但是,第一個引數不能保證指向一個字串,因為text它由不確定的值組成,因為它沒有被初始化。
您有兩個選項來修復此錯誤。你可以
- 在第一次呼叫 之前
strcat,將 的第一個字符設定text為終止空字符,即text[0] = '\0';,以便text包含有效(空)字串,或 - 用 替換第一個函式呼叫
strcat,strcpy因為strcpy不需要第一個函式引數指向有效字串。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/430173.html
上一篇:我要去哪里越界?
下一篇:在庫中,我應該檢查指標是否有效?
