[英]C - Convert int to char
我正在尋找解決問題的方法(此處是新手)。
我有一個字符串數組( char** arrayNum
),我想在第一個索引處存儲該數組的元素數。
但是我找不到將元素數量轉換為字符串(或字符)的正確方法。
我已經嘗試過itoa
,cast( char
), +'0'
, snprintf
...沒有任何作用。
每當我問有關堆棧溢出的問題時,我都肯定解決方案會很明顯。 在此先感謝您的幫助。
所以我有一個填充的字符串數組char** arrayNum
,索引0
空。
當我嘗試將字符串分配給arrayNum[0]
:
這有效: arrayNum[0] = "blabla";
這不起作用: arrayNum[0] = (char) ((arraySize - 1)+'0');
我嘗試了無數其他組合,我什至不記得了...
可以將arrayNum
視為字符串數組( char *
)。 因此,您自然很難嘗試將char
(或char *
以外的任何其他類型)分配給此數組的元素。
我認為最好將數組的長度分別存儲到數組中。 例如,使用struct
。 否則會引起混亂。
如果您確實希望將長度存儲在第一個元素中,則可以執行以下操作:
arrayNum[0] = malloc(sizeof(char));
arrayNum[0][0] = (char) ((arraySize - 1)+'0');
這利用了以下事實: arrayNum
嚴格來說是一個指針數組,並且這些指針中的每一個都是指向char
的指針。 因此,它可以指向單個字符或字符數組(“字符串”)。
為了清楚起見,將其與(例如)進行比較:
struct elements {
int length;
char **data;
};
arrayNum
不是 “字符串數組”。
以這種方式考慮可能對您很有用,但了解它的真正意義也很重要。 它是一個指針數組,其中每個指針都是指向char
的指針。
有時,指向char
的指針是“字符串”,有時是指向字符串中間的指針,有時僅是指向某個字符的指針。 這完全取決於您的使用方式。
C編程語言實際上沒有字符串。 它具有字符串文字 ,但是字符串文字只是一個以\\000
結尾的字符const
數組。 您可以寫arrayNum[0] = "blabla";
是因為字符串文字的值 "blabla"
是一個指向第一個'b'
中的“布拉布拉”,和的元素arrayNum
陣列是指向字符。
您有責任確定arrayNum[i]
是否指向某個字符串的第一個字符,或者它是否恰好指向某個單個字符; 並且您有責任決定並跟蹤它是否指向需要freed()
,是否指向只讀內存,是否指向堆棧中的內容,或者是否指向/指向某個對象靜態分配的數據結構。
語言不在乎。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.