簡體   English   中英

將字符串分配給2D數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM