当前位置: 首页 > news >正文

C语言 精选真题2

题目要求:将形参s所指向的字符串转换为整数并且返回

知识点:

将字符1转化为整数1

int fun(char *s)
{int flag=1,n=0;  if(*s=='-')        //先根据第一个符号来判断是正负;然后读取第二位{flag=-1;s++;      }else if(*s=='+'){s++;}while(*s>='0'&&*s<='9')//判断是否为字符,如果不是则退出循环{n=n*10+*s-'0';       //打印整数s++;                 //将字符'1'转化为整数1的方式;ASCII码  }return flag*n;
}
/*
字符串转整数
1.指针操作:
函数通过指针 s 来访问字符串。
通过 s++ 来移动指针到字符串的下一个字符。
2.字符与数字的转换:
通过 *s - '0' 将字符转换为对应的整数值。
3.处理正负号:
函数首先检查字符串的第一个字符是否是正负号。如果是负号('-'),则设置 flag 为 -1,并跳过负号字符;如果是正号('+'),则直接跳过正号字符。
4.循环与条件判断:(检查数字)
使用 while 循环遍历字符串中的每个字符,直到遇到非数字字符为止。
循环条件 *s>='0' && *s<='9' 用于检查当前字符是否为数字。
5.整数溢出:
这个简化实现没有处理整数溢出的情况。在实际应用中,当处理的数字非常大时,可能会导致整数溢出,这是一个需要注意的安全问题。
6.错误处理:
函数没有处理非法输入(如包含非数字字符的字符串)。在实际应用中,可能需要增加错误处理逻辑,比如当遇到非数字字符时返回特定的错误码或执行其他错误处理措施。
7.返回值:
函数最终返回转换后的整数,考虑了正负号(通过 flag 变量)。
边界条件:
8.如果输入字符串为空或只包含正负号而不跟数字,函数将返回 0。这是因为 n 被初始化为 0,且循环体不会执行。
*/

http://www.lryc.cn/news/483221.html

相关文章:

  • Netty篇(WebSocket)
  • 云原生-docker安装与基础操作
  • MySQL数据库:SQL语言入门 【上】(学习笔记)
  • 重学 Android 自定义 View 系列(六):环形进度条
  • nodejs 020: React语法规则 props和state
  • STM32问题集
  • SwiftUI(十二)- 容器组件 布局与结构的基石
  • 想租用显卡训练自己的网络?AutoDL保姆级使用教程(PyCharm版)
  • LeetCode【0039】组合总和
  • AscendC从入门到精通系列(一)初步感知AscendC
  • PostgreSQL中的COPY命令:高效数据导入与导出
  • 【HAL库】STM32F105VCTx多通道ADC+DMA方式的【STM32CubeMX】配置及代码实现
  • [SaaS] 数禾科技 AIGC生成营销素材
  • vue3中查找字典列表中某个元素的值对应的列表索引值
  • 爱普生机器人EPSON RC
  • Linux探秘坊-------1.系统核心的低语:基础指令的奥秘解析(1)
  • ❤React-JSX语法认识和使用
  • 51单片机应用开发(进阶)---定时器应用(电子时钟)
  • JavaScript中的对象-栈内存和堆内存以及this指向的两种情况(后续会出进阶)
  • shell脚本使用curl上传FTP
  • 【漏洞分析】Fastjson最新版本RCE漏洞
  • 【项目开发 | 跨域认证】JSON Web Token(JWT)
  • 杨中科 .Net Core 笔记 DI 依赖注入2
  • 微信版产品目录如何制作?
  • 使用HTML、CSS和JavaScript创建动态圣诞树
  • 机器学习-35-提取时间序列信号的特征
  • 【软件测试】设计测试用例的万能公式
  • 【MySQL 保姆级教学】事务的自动提交和手动提交(重点)--上(13)
  • CUDA 核心与科学计算 :NVIDIA 计算核心在计算服务器的价值
  • 架构师之路-学渣到学霸历程-58