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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© romeo1990 中级黑马   /  2015-1-3 13:28  /  757 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1。将十进制数字组成的串转化为一个整形数:
  • 将储存最终结果的变量清零
  • 如果串中没有数字了,则算法结束,该变量储存的就是对应的数
  • 从串中取下一个数字(左->右)
  • 将变量*10,然后+步骤3中取得的数字
  • goto step 2
代码实现:
#include <stdio.h>;
#include <assert.h>;

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<stdio.h>
void main()
{
   int k=12345;
   char str[10];
   sprintf(str,"%d",k);
   printf("%s",str);
}

方法2:将整型数字换为字符串:
  • 初始化字符串为空串
  • 如果整数为0就输出0,结束
  • 将当前整数除以10,得到余数和商
  • 将余数转换成一个字符,把该字符接到字符串尾部
  • 如果商!=0,把它当作新的整形数,repeat step 3~5
  • 将字符串中的字符按放入顺序逆序输出(跟堆栈道理一样)






0 个回复

您需要登录后才可以回帖 登录 | 加入黑马