char in[100], *temp[10],var[10][10];
int i, n = 0,
double val[10];
var[0][]="ANS";
我想分配一個字符串,變種[0] [0,1,2]這是「ANS」,但沒有工作,我不明白我哪裏錯了這分配一個字符串轉換爲二維數組
char in[100], *temp[10],var[10][10];
int i, n = 0,
double val[10];
var[0][]="ANS";
我想分配一個字符串,變種[0] [0,1,2]這是「ANS」,但沒有工作,我不明白我哪裏錯了這分配一個字符串轉換爲二維數組
你有種回答你自己的問題。你想把var [0] [0,1,2,3]賦值給「ANS」嗎?那麼「ANS」是一個字符數組,ans [0,1,2,3](不要忘記空終止符)。所以你必須分別分配每一個。在C字符串中不是數據類型,它們只是其他變量的數組(確切地說是字符)。你可以做的是:
strcpy(var[0], "ANS");
這將爲你做逐字節的副本。
然而,strcpy有一些缺陷。首先,目標字符數組(在這種情況下爲var [0])必須足夠大以包含字符串。它不會檢查你的(它不能,實際上),所以如果你不小心,你可能會導致緩衝區溢出。此外,源必須爲NULL終止。
也許不是使用,
strncpy(var[0], "ANS", 3);
當你寫
var[0][] = "ANS"
編譯器試圖 「ANS」 分配給VAR [0] [0]這是隻有一個字符的地方。
因此,您應該使用strcpy函數。 strcpy將按字符複製char。