最後の文字が配列の次の要素の最初の文字と一致すると、最後の文字が繰り返された場合の出力。理由は何ですか?解決策は何ですか?
#include <stdio.h>
int main(void) {
int i ;
char fact_char[13][2] = {"I", "IV", "V", "IX", "X", "XL", "L", "XC", "C", "CD", "D", "CM", "M"};
for(i = 0; i < 13; i++){
printf("%s\n", fact_char[i]);
}
return 0;
}
出力
I
IVV
V
IXX
X
XLL
L
XCC
C
CDD
D
CMM
M
cの文字列はnullで終了します。「IV」を表すために、実際には「I」、「V」、および「\ 0」をメモリに格納しています。2文字の文字列を出力する場合、printfは、メモリ内で次のヌルターミネータが見つかるまで書き込みを続けます。これはたまたま次の(1文字の)文字列にあります。
これを修正するには、
fact_char [13] [ 3 ]
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加