Myatoi和Myitoa的实现(字符串转数字和数字转字符串)

本文介绍了如何实现C++中的字符串转整数(Myatoi)和整数转字符串(Myitoa)功能。针对不同类型的输入,如带前导空格、非法字符或负号的情况进行了讨论,并强调了逻辑细节,例如处理空字符串、非数字字符以及正负号的问题。同时,提出了数字转字符串的一种解决方案,通过数字的逆序输出和反转来简化处理过程。
摘要由CSDN通过智能技术生成

1.字符串转数字:
理想情况下我们希望的字符串就是“514”或者是“383842389”反正就都是数字,这种情况下怎么来写呢?假如是字符串“514”,正序把他输出变成数字514,定义一个变量,在第一个数字时乘10+加下一个数字以此类推,变量初始值为0,0乘10加5等于5,str++,5在再乘10加1等于51,str++,51乘10加4即514,以此类推。要说明的是:我们还要减去字符零

int Myatoi(const char *str)
{
    int tmp=0;
    while(*str!='\0')
    {
        tmp=tmp*10+*str-'0';
        str++;
    }
    return tmp;
}
int main()
{
    printf("%d\n",Myatoi("514"));
    return 0;
}

可事实我们不会总是遇见这种字符串我们还会遇见“ 514”,“51#4”,“-514”等等,那我们就要把考虑的都要加进去了。

#include <stdio.h>
#include <assert.h>
#include <ctype.h>
int Myatoi(const char *str)
{
    assert(str != NULL);
	if(str == NULL)
	{
		return 0;
	}
    while(*str==' ')                            11
    {
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值