C-将整数反转为数组
我正在尝试反转整数的数字。 为此,我:C-将整数反转为数组,c,C,我正在尝试反转整数的数字。 为此,我: 取整数 把它串成一条线 将字符串反向放入另一个字符串中 将反向字符串转换为正确的整数 我已经到了第3步,虽然它确实正确地反转了字符串,但它给我留下了很多奇怪的数据。 顶部是要比较的数组长度。 这些奇怪的数据发生了什么 int ReverseNumber(int Num) { //Variables int i = 0; int j = 0; char Number[50]; char ReversedNumber[50]; sprintf(Number,"
int ReverseNumber(int Num) {
//Variables
int i = 0;
int j = 0;
char Number[50];
char ReversedNumber[50];
sprintf(Number,"%d", Num);
//Finding Length Of Array
do{
i++;
}while(Number[i] > 10);
//i - 1(Due to Array Length)
i--;
//Reverseing
do {
printf("%d | %d \n",j,i);
ReversedNumber[j] = Number[i];
printf("%c\n", ReversedNumber[j]);
getch();
i--;
j++;
} while (i != -1);
int NumberLength = (strlen(Number) - 1);
//Printing
printf("%s\n", Number);
printf("%s\n", ReversedNumber);
}
在(…)终止时,必须将
\0
添加到ReversedNumber
的末尾,然后执行{…}操作:
//Reverseing
do {
...
} while (...);
ReversedNumber[j] = '\0';
在(…)终止时,必须将
\0
添加到ReversedNumber
的末尾,然后执行{…}操作:
//Reverseing
do {
...
} while (...);
ReversedNumber[j] = '\0';
当你可以使用strlen时,为什么会有这种奇怪的
do
/循环查找Number
的长度?为什么以后要做intnumberlength=(strlen(Number)-1)代码>但永远不要使用<代码>编号长度>代码>你的代码没有终止<代码> RealDeNo.< /代码>这不是因为你用一个长度为50、C++和C++的数组填充了我记忆中的奇怪对象的未使用内存(在C中编程了一段时间)@ StasFiuWS C和C++不这样做。编译器是为了调试而这样做的。这就是为什么╠╠╠╠╠...代码>被看到(在中是0xCC,这是大多数使用西方代码页的电脑的默认设置)@LưuVĩnhPhúc oke,谢谢你帮我澄清:)为什么你会有这种奇怪的do
/,而循环查找Number
的长度,而你可以使用strlen
?为什么以后要做intnumberlength=(strlen(Number)-1)代码>但永远不要使用<代码>编号长度>代码>你的代码没有终止<代码> RealDeNo.< /代码>这不是因为你用一个长度为50、C++和C++的数组填充了我记忆中的奇怪对象的未使用内存(在C中编程了一段时间)@ StasFiuWS C和C++不这样做。编译器是为了调试而这样做的。这就是为什么╠╠╠╠╠...代码>可见(在中为0xCC,这是大多数使用西方代码页的PC的默认设置)@LưuVĩnhPhúc oke,感谢您为我澄清:)