leetcode--字符串转换为整数

题目:给定一个字符串,您需要做以下步骤

①读入字符串,如果字符串有空格直接丢弃。 比如:" 123",直接丢弃空格,变为"123"

②读取下一个字符,如果为"-",则表示结果输出为负数,如果为"+",则结果输出为正数,如果没有"-"和"+"直接默认结果为正数。比如" -234",结果输出为-234;"+123"或者"123",结果输出为123

③继续读取下一个字符,直到出现不是数字字符或者到了字符串尾部。字符串剩下的就被忽视掉。比如:"-551df5665",输出为-551,后面的直接被忽视掉

④将读入的正数作为返回值,如果字符串没有数字字符,直接返回整数0.

⑤返回的整数要在[-2^31,(2^31)-1],如果超出范围就直接返回临界值,即-2^31(负数超出范围的返回值),(2^31)-1(整数超出范围的返回值),2^31=2147483647

栗子:

①输入为s="-42",返回值为-42,在无符号整形范围内

②输入为s=" 0123 456",返回值为123,注意:3下一个字符为空格,这时的空格不再是丢弃,空格直接在所有字符之前才丢弃,之后碰到都会作为字符串的终止符号

在这里在提醒大家一点:在输入的字符串中,一旦扫描到不是空格的字符开始,下一个只要碰到不是数字字符的都直接退出程序

好了,这道题的题目有点长,过程可能会有点复杂,相信你一定可以做到的。

已知代码给大家:

 动手完整myAtoi函数

已知代码源代码给大家:

#include <stdio.h>
#include <math.h>
int myAtoi(char* s){
    
}

int main(){
    char s[20];
    int ret;
    printf("请输入字符串:>");
    fflush(stdin);    //清空缓存区
    scanf("%s",s);

    //动手实现myAtoi函数
    ret=myAtoi(s);
    printf("%d\n",ret);
    return 0;
}

其实说实话,这道题想不清楚就非常绕,因为需要注意的点很多,一旦你这修改完成,那边又会出错,所以写代码之前自己就要先想清楚,把所有存在的情况尽可能的列出来,根据自己列出来的情况写代码。

答案:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值