A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© gh112233 中级黑马   /  2014-6-8 11:15  /  1623 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

各位朋友看面试题目中有一个题目:不用库函数,用c语言实现将一个整型数字转换为字符串。要求用两种方法完成。

5 个回复

倒序浏览
你好我已经帮你做了这个题目了,两个思路是不一样的,也比较容易看懂

  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. }
复制代码

评分

参与人数 1黑马币 +5 收起 理由
gh112233 + 5 赞一个!

查看全部评分

回复 使用道具 举报 1 0
和楼上的思路差不多
回复 使用道具 举报
学习了学习了
回复 使用道具 举报
哇塞,达人
回复 使用道具 举报
这是什么地方的面试题??
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马