剑指offer--把字符串转换成整数

本文介绍了一种不使用库函数将字符串转换为整数的方法。通过遍历字符串字符并检查其有效性来实现这一过程,同时处理正负号,并确保结果不超过整数范围。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目描述将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。如果是非法的整数字符,比如1aa3,则返回0。


分类:字符串

解法1:注意一些特殊情况的要求就好了。

[java]  view plain  copy
  1. public int StrToInt(String str) {  
  2.         char[] chars = str.toCharArray();  
  3.         long sum = 0;  
  4.         int max = 0x7FFFFFFF;  
  5.         int min = 0x80000000;  
  6.           
  7.         boolean flag = true;  
  8.         int i=1;  
  9.         if(chars.length==0return 0;         
  10.         if(chars[0]!='+'){  
  11.             if(chars[0]=='-') flag = false;  
  12.             else if(!(chars[0]>='0'&&chars[0]<='9')) return 0;  
  13.             else i = 0;  
  14.         }  
  15.         for(;i<chars.length;i++){  
  16.             if(chars[i]>='0'&&chars[i]<='9'){  
  17.                 if(sum*10+chars[i]-'0'-1==max && !flag){  
  18.                     return (int) -(sum*10+chars[i]-'0');  
  19.                 }  
  20.                 if(!(sum*10+chars[i]-'0'>=min && sum*10+chars[i]-'0'<=max)){  
  21.                     return 0;  
  22.                 }  
  23.                 sum = sum*10+chars[i]-'0';  
  24.             }else{  
  25.                 return 0;  
  26.             }  
  27.         }  
  28.         return (int) (flag?sum:-sum);  
  29.     }  


原文链接  http://write.blog.youkuaiyun.com/postedit

基于C2000 DSP的电力电子、电机驱动和数字滤波器的仿真模型构建及其C代码实现方法。首先,在MATLAB/Simulink环境中创建电力电子系统的仿真模型,如三相逆变器,重点讨论了PWM生成模块中死区时间的设置及其对输出波形的影响。接着,深入探讨了C2000 DSP内部各关键模块(如ADC、DAC、PWM定时器)的具体配置步骤,特别是EPWM模块采用上下计数模式以确保对称波形的生成。此外,还讲解了数字滤波器的设计流程,从MATLAB中的参数设定到最终转换为适用于嵌入式系统的高效C代码。文中强调了硬件在环(HIL)和支持快速原型设计(RCP)的重要性,并分享了一些实际项目中常见的陷阱及解决方案,如PCB布局不当导致的ADC采样异常等问题。最后,针对中断服务程序(ISR)提出了优化建议,避免因ISR执行时间过长而引起的系统不稳定现象。 适合人群:从事电力电子、电机控制系统开发的技术人员,尤其是那些希望深入了解C2000 DSP应用细节的研发工程师。 使用场景及目标:①掌握利用MATLAB/Simulink进行电力电子设备仿真的技巧;②学会正确配置C2000 DSP的各项外设资源;③能够独立完成从理论设计到实际产品落地全过程中的各个环节,包括但不限于数字滤波器设计、PWM信号生成、ADC采样同步等。 其他说明:文中提供了大量实用的代码片段和技术提示,帮助读者更好地理解和实践相关知识点。同时,也提到了一些常见错误案例,有助于开发者规避潜在风险。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值