自己写的itoa函数最后打印不出来,找了半天也没找到问题..
#include<stdio.h>#defineSWAP(a,b) \
do\
{\
a=(a)+(b);\
b=(a)-(b);\
b=(a)-(b);\
}while(0)
void itoa(int num,char *ch)
{
int rest;
int i =0;
int j=0;
do
{
rest=num%10;
ch=rest;
num/=10;
}while(num!=0);
ch='\0';
printf("ch=%s\n",ch);
for(j=0;j<i/2;j++)
{
SWAP(ch,ch);
}
printf("ch=%s\n",ch);
}
int main(void)
{
char buff;
itoa(200,buff);
puts(buff);
return 0;
}
麻烦帮忙看一下哪里出了问题~感谢~ 本帖最后由 人造人 于 2016-11-1 12:36 编辑
SWAP 宏 有问题
24行 有问题
#include<stdio.h>
// 注意这里
#defineSWAP(a,b) \
do\
{\
a=(a)+(b);\
b=(a)-(b);\
a=(a)-(b);\
}while(0)
void itoa(int num, char *ch)
{
int rest;
int i = 0;
int j = 0;
do
{
rest = num % 10;
ch = rest + '0'; // 注意这里
num /= 10;
} while(num != 0);
ch = '\0';
//printf("ch=%s\n", ch);
for(j = 0; j<i / 2; j++)
{
SWAP(ch, ch);
}
//printf("ch=%s\n", ch);
}
int main(void)
{
char buff;
itoa(12345, buff);
puts(buff);
return 0;
}
页:
[1]