[英]Assigning a string to a 2D array
char in[100], *temp[10],var[10][10];
int i, n = 0,
double val[10];
var[0][]="ANS";
我想給var [0] [0,1,2]分配一個字符串,它是'ANS',但是不起作用,我無法弄清楚我對此有何錯
您已經回答了自己的問題。 您想將var [0] [0,1,2,3]分配給“ ANS”對嗎? 那么“ ANS”是一個字符數組,ans [0,1,2,3](不要忘記空終止符)。 因此,您必須分別分配每個。 在C語言中,字符串不是數據類型,它們只是其他變量(准確地說是字符)的數組。 您可以做的是:
strcpy(var[0], "ANS");
它將為您逐字節復制。
但是,strcpy有一些陷阱。 首先,目標char數組(在這種情況下為var [0])必須足夠大以包含字符串。 它不會為您檢查(實際上不能),因此,如果您不小心,可能會導致緩沖區溢出。 同樣,源必須以NULL終止。
也許改用
strncpy(var[0], "ANS", 3);
當你寫
var[0][] = "ANS"
編譯器嘗試將“ ANS”分配給var [0] [0],這是一個字符的唯一位置。
因此,您應該使用strcpy函數。 strcpy將逐字符復制。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.