Visual C 6 を使用しています
文字配列 (一重引用符) を整数に変換し、値を 1 増やしてから、結果を別の文字配列に格納しようとしています。
しかし、文字に戻すと予期しない値が得られます..
これが私のコードです
char char_array[4];
char_array[0] = '1';
char_array[1] = '2';
char_array[2] = '3';
char_array[3] = '\0'; //Terminating character
int my_number = atoi(char_array);
printf("my_number = %d" , my_number); // output is 123
my_number++; // works and my_number is incremented =124
printf("now: my_number = %d" , my_number); // output is 124
char result[4]; //declared to store the result
result = itoa(my_number); // Output is unexpected.
printf("%c", result[0]); // Output is 2 instead of 1
printf("%c", result[1]); // Output is 2
printf("%c", result[2]); // Output as 3 instead of 4
関数itoa()
は元の値123
を何らかの形で知っているようで、奇妙な方法でその値をインクリメントしたことを知っています..しかし、加算は間違った桁に行われます。最下位桁に 1 を加算する代わりに、最上位桁に 1 を加算します。