用C++定义一个字符数组char str[80]。输入一个10进制字符串(以回车结束),将其转换为10进制有符号整数,如果输入的数据错误则报错。
如:输入字符串156或+156,转换为整型156输出。输入字符数组-156,转换为整数-156输出。如输入字符串12.33(只要含有非0~9,及+、-号不在第一个字符。)则报错,输出提示“输入错误!”。允许输入前导空格处理时能够自动忽略。
C++(数组)输入个十进制字符串,将其转化成一个10进制有符号整数,否则报错
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
4条回答 默认 最新
- 快乐鹦鹉 2022-10-27 08:42关注
遍历字符串,开头的空格过滤掉,开头的+或-号转为正负,后面如果有小数点也算错。然后遇到数字字符减去'0'
#include<iostream> using namespace std; int main() { char str[80]; gets(str); int i=0; int n=0; int f=0; int flag = 1; while(str[i] != '\0') { if(f==1) { if(str[i] < '0' || str[i] > '9') break; } else { if(str[i] == '+' || str[i] == '-' || str[i] == ' ') { if(str[i] == '-') flag *= -1; i++; continue; } if(str[i] < '0' || str[i] > '9') break; f=1; } n = n*10 + str[i] - '0'; i++; } if(str[i] == '\0') printf("%d",n); else printf("输入错误!"); return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥20 机器学习能否像多层线性模型一样处理嵌套数据
- ¥20 西门子S7-Graph,S7-300,梯形图
- ¥50 用易语言http 访问不了网页
- ¥50 safari浏览器fetch提交数据后数据丢失问题
- ¥15 matlab不知道怎么改,求解答!!
- ¥15 永磁直线电机的电流环pi调不出来
- ¥15 用stata实现聚类的代码
- ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
- ¥20 docker里部署springboot项目,访问不到扬声器
- ¥15 netty整合springboot之后自动重连失效