Chinaunix首页 | 论坛 | 博客
  • 博客访问: 86464
  • 博文数量: 53
  • 博客积分: 2500
  • 博客等级: 少校
  • 技术积分: 390
  • 用 户 组: 普通用户
  • 注册时间: 2008-05-06 20:01
文章分类

全部博文(53)

文章存档

2008年(53)

我的朋友

分类: C/C++

2008-05-31 19:38:10

1。将十进制数字组成的串转化为一个整形数:

  1. 将储存最终结果的变量清零
  2. 如果串中没有数字了,则算法结束,该变量储存的就是对应的数
  3. 从串中取下一个数字(左->右)
  4. 将变量*10,然后+步骤3中取得的数字
  5. goto step 2

代码实现:

#include ;
#include ;

int _atoi(const char *src)
{
        int i=0;
        while( *src != '\0') {
                assert(*src >;= '0' && *src <= '9');
                i = i*10 + *src - '0';
                src++;
        }

        return i;
}

int main(int argc, char **argv)
{
        char src[24] = "123456";
       
        printf("%d\n",_atoi(src));
        
        return 0;
}


 整型转换为字符串

#include
void main()
{
   int k=12345;
   char str[10];
   sprintf(str,"%d",k);
   printf("%s",str);
}
 

方法2:将整型数字换为字符串:

  1. 初始化字符串为空串
  2. 如果整数为0就输出0,结束
  3. 将当前整数除以10,得到余数和商
  4. 将余数转换成一个字符,把该字符接到字符串尾部
  5. 如果商!=0,把它当作新的整形数,repeat step 3~5
  6. 将字符串中的字符按放入顺序逆序输出(跟堆栈道理一样)
阅读(3599) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~