[英]construct string from indices in C
當我構造這樣的字符串時:
char string[1] = {'a'};
printf("%s", string)
它返回a4
。 為什么末尾有四個? 我該如何擺脫呢?
我之所以選擇這種方法,是因為我需要從字符索引中創建一個字符串,例如char array[4] = {string[i],string[j],string[k]};
。
您的字符串應以終止字符'\\ 0'結尾。
char string[2] = {'a','\0'};
要么:
char string[] = "a";
C語言中的“字符串”本質上是以\\ 0字符結尾的字符數組(空終止)。
因此,如果您想要一個字符數組,那么您所做的就可以了,但是它不是一個“字符串”。 不要嘗試這樣打印。
如果您還想打印或將其視為“字符串”,則將其長度增加1,並在末尾添加一個'\\0'
字符。
轉換規范%s
用於輸出字符串,該字符串是一個以零個字符結尾的字符序列。
數組以這種方式聲明
char string[1] = {'a'};
不包含字符串。
因此,要輸出其元素,您需要指定要輸出的確切字符數。 例如
printf("%*.*s", 1, 1, string);
否則,在數組中為終止的零保留一個以上的元素,並使用轉換規范%s
。 例如
char string[2] = {'a'};
printf( "%s", string );
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.