将一个字符串转换为整数

举报
悦来客栈的老板 发表于 2020/12/30 00:10:39 2020/12/30
【摘要】 #include <stdio.h>#include <string.h>#include <stdlib.h> int myatoi(char *s){ int i = 0,j; int result = 0; int flag = 1; while (s[i] == ' ') //将多余的空格字符去掉 { i++; } if(s...

  
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdlib.h>
  4. int myatoi(char *s)
  5. {
  6. int i = 0,j;
  7. int result = 0;
  8. int flag = 1;
  9. while (s[i] == ' ') //将多余的空格字符去掉
  10. {
  11. i++;
  12. }
  13. if(s[i] == '+')//如果是一个正整数
  14. {
  15. i++;
  16. }
  17. if(s[i] == '-')//如果是一个负整数
  18. {
  19. i++;
  20. flag = -1;
  21. }
  22. while (s[i] != '\0')//开始遍历数字字符
  23. {
  24. if (s[i] < '0' || s[i] > '9')
  25. {
  26. printf("字符串含有非数字字符,无法转换\n");
  27. exit(0);
  28. }
  29. j = s[i] - '0'; //字符串中的字符以ASCII码存储;
  30. result = 10 * result + j;
  31. i++;
  32. }
  33. result = flag * result;
  34. return result;
  35. }
  36. int main()
  37. {
  38. int i;
  39. char str[100];
  40. printf("请输入一个纯数字的字符串:");
  41. gets(str);
  42. i = myatoi(str);
  43. printf("您输入的字符串转换为整数是:%d\n",i);
  44. return 0;
  45. }

文章来源: blog.csdn.net,作者:悦来客栈的老板,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/qq523176585/article/details/11759921

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。