atoi函数:将含有字母,空格,+-号,数字的字符串以数字形式输出

//atoi函数
#include<stdio.h>
#include<math.h>
#include<string.h>
#include<assert.h>
#include<ctype.h>
int getbit(const char* str) {//获取字符串有效数据个数int count = 0;//计数器int len = strlen(str);for (int i = 0; i < len;i++) {if (isdigit(str[i])) {//判断str[i]是否为数字count++;//是数字  count+1}else if (str[i]=='+'||str[i]=='-'||str[i]==' ') {continue;}//如果遇到+-号或者空格  结束当前循环,进入下一次循环else {break;}}return count;
}
int my_atoi(const char* str) {assert(str!=NULL);int result = 0, flag = 1;while (*str == ' ') {//先让字符跑到第一个不是空格的地方str++;}int bit = getbit(str);//获取字符个数int len = strlen(str);for (int i = 0; i < len;) {if (str[i] == '+' || str[i] == '-') {flag = str[i] == '+' ? 1 : -1;i++;if (!isdigit(str[i])) {//遇到不是数字就停止return 0;}}else if (!isdigit(str[i])) {//如果最开始遇到的就不是数字也不是+-号  直接推出循环return 0;}result += (str[i] - '0') * (int)pow(10, bit - 1);bit--;i++;if (str[i]==' '||!isdigit(str[i])) {break;}}return result*flag;
}
int main() {char str[256];gets_s(str);int res1 = getbit(str);int res2 = my_atoi(str);printf("%5d  %5d",res1,res2);return 0;
}

测试用例:

C语言 (atoi函数实现)相关推荐

  1. C语言atoi()函数用法

    C语言atoi()函数用法 头文件:#include <stdlib.h> atoi() 函数用来将字符串转换成整数(int),其原型为: int atoi (const char * s ...

  2. C语言atoi函数详解

    一.atoi()基本概念 atoi是C/C++语言中一个常用的字符串转整数的函数,其原型定义在stdlib.h头文件中.它的作用是将一个字符串表示的数字转换为对应的整数. 函数原型: int atoi ...

  3. C语言 atoi 函数解析

    文章目录 前言 atoi函数的介绍 atoi函数的使用 atoi函数的自我实现 附:C++完整无缺版自我实现 写在最后 前言 对于atoi函数大家可能会有些陌生,不过当你选择并阅读到这里时,请往下阅读 ...

  4. c语言atoi函数定义,C语言函数 atoi()

    C语言函数 atoi() C语言的设计目标是提供一种能以简易的方式编译.处理低级存储器.产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言.下面我们来看看C语言函数 atoi() C语言函数 ...

  5. C语言atoi()函数(字符串转整数int类型)(atol()转换为long)

    需包含头文件:C 标准库 - <stdlib.h> 文章目录 描述 声明 参数 返回值 实例 在windows VS上测试 20211206 用atoi转换long,发现溢出了 描述 C ...

  6. C语言atoi()函数:将字符串转换成int(整数)和sprintf和memset

    atoi()函数 #include <stdio.h> #include <stdlib.h>int main () {int i;char buffer[256];print ...

  7. C语言 atoi函数简单实现

    有时候需要字符串转换到int类型,使用atoi函数可以轻松完成类型转换. 下面贴上atoi函数实现方法: int Atoi(const char* src) {assert(NULL != src); ...

  8. C语言atoi函数的用法

    #include < stdlib.h > int atoi(const char *nptr); 用法:将字符串里的数字字符转化为整形数.返回整形值. 注意:转化时跳过前面的空格字符,直 ...

  9. C语言 -- atoi函数、strtoul函数

    atoi #include <stdlib.h>int atoi(const char *nptr); long atol(const char *nptr); long long ato ...

  10. c语言atoi的头文件,atoi函数(atoi函数在那个头文件)

    需要导入头文件#include 将字符串转换成一个整数并返回结果.参数str 以数字开头,当函数从str 中读到非数字字符则结束转换并将结果返回.例如, int i = atoi( . atoi(s. ...

最新文章

  1. SIM800C SIM卡唯一标识符ICCID
  2. Spring学习框架图
  3. C与c++中-什么时候用,头文件中与“”区别
  4. Swing中的一些对话框
  5. Matlab矩阵替换所有等于某个值的数
  6. sqldeveloper的查看执行计划快捷键F10
  7. Visual Studio 类视图和“对象浏览器”图标含义
  8. java验证json合法性_java校验json字符串是否合法
  9. idea使用svn拉取项目代码_使用 IDEA 搭建 Hadoop3.1.1 项目
  10. java.lang.NoSuchMethodError: org.apache.poi.hssf.usermodel.HSSFSheet.getMergedRegion
  11. javaweb实训第二天上午——jQuery笔记
  12. String、StringBuffer、StringBuilder三者的区别
  13. 【 Linux 网络虚拟化 】Openvswitch
  14. Matlab fftshift and ifftshift and some confusions
  15. socks5 转换为 http 代理(使用privoxy)
  16. 网络打印机 这台计算机上没有安装,Win7添加网络打印机时提示打印处理器不存在怎么办?...
  17. 黑鲨装机大师一键重装系统图文
  18. 实现echarts图多个legend图例和自定义legend中字体颜色
  19. Unityt涂抹擦除功能
  20. linux下eeprom读写测试,本科毕业设计__基于linux的eeprom的读写控制.doc

热门文章

  1. socket的IP TRANSPARENT选项实现代理
  2. 跳转页面和打开新窗口方法
  3. Vov Sticky Notes v8.0 桌面彩色便签工具,创意灵感随时记
  4. 流媒体的一些基本概念
  5. wps、word论文中公式居中,编号居右的简单方法,不要傻傻的手动居中了!
  6. cassandra 数据导出导入_cassandra数据备份与迁移
  7. c++语言教程书本pdf,C++语言基础教程_吕凤翥.pdf
  8. 隐藏列表的另一种方式,Excel表格怎么创建组?
  9. gulp4.0构建自动化项目
  10. html的打开方式被破坏,常年保持运动,可是却看不见腹肌,那是因为你的打开方式不对...