黑马程序员技术交流社区

标题: 面试题:求大神在线接待 [打印本页]

作者: gh112233    时间: 2014-6-8 11:15
标题: 面试题:求大神在线接待
各位朋友看面试题目中有一个题目:不用库函数,用c语言实现将一个整型数字转换为字符串。要求用两种方法完成。
作者: qddnovo    时间: 2014-6-8 11:30
你好我已经帮你做了这个题目了,两个思路是不一样的,也比较容易看懂

  1. int getlen(char *s)
  2. {
  3.         int n;
  4.         for(n=0;*s!='\0';s++)
  5.                 n++;
  6.         return n;
  7. }

  8. void reverse(char s[])
  9. {
  10.         int c,i,j;
  11.         for(i=0;j=getlen(s)-1;i<j;j--)
  12.         {
  13.                 c=s[i];
  14.                 s[i]=s[j];
  15.                 s[j]=c;
  16.         }
  17. }
  18. void itoa(int n,char[])
  19. {
  20.         int i,sign;
  21.         if((sign=n)<0)
  22.                 n=-n;
  23.         i=0;
  24.         do{//反序以生成数字
  25.                 s[i++]=n%10+'0';//get next num
  26.         }while((n/=10)>0);//delete the num
  27.         if(sign<0)
  28.                 s[i++]='-';
  29.         s[i]='\0';
  30.         reverse(s);
  31. }
复制代码


这是方法二,用了c++的cout,换成printf即可啦
  1. void itochar(int num);
  2. void itochar(int num)
  3. {
  4.         int i=0;
  5.         int j;
  6.         char stra[10];
  7.         char strb[10];
  8.         while(num)
  9.         {
  10.                 stra[i++]=num%10+48;
  11.                 num=num/10;
  12.         }
  13.         stra[i]='\0';
  14.         for(j=0;j<i;j++)
  15.         {
  16.                 strb[j]=stra[i-j-1];
  17.         }
  18.         strb[j]='\0';
  19.         cout<<strb<<endl;//换成printf就行了
  20. }

  21. int main()
  22. {
  23.         int num;
  24.         cin>>num;
  25.         itochar(num);
  26.         return 0;
  27. }
复制代码

作者: 但愿''专注..    时间: 2014-6-8 11:53
和楼上的思路差不多
作者: 永远不会贬值    时间: 2014-6-8 12:54
学习了学习了
作者: 54hxd52lj    时间: 2014-6-10 09:55
哇塞,达人
作者: Sniper_YJ    时间: 2014-6-10 10:47
这是什么地方的面试题??




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2