我正在使用 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,而是在最高有效位上进行加法。