字符串加减运算
来源:互联网 发布:xampp修改apache端口 编辑:程序博客网 时间:2024/06/11 04:28
通过键盘输入100以内正整数的加、减运算式,请编写一个程序输出运算结果字符串。
输入字符串的格式为:“操作数1 运算符 操作数2”,“操作数”与“运算符”之间以一个空格隔开。
补充说明:
1、操作数为正整数,不需要考虑计算结果溢出的情况。
2、若输入算式格式错误,输出结果为“0”。
要求实现函数:
void arithmetic(const char *pInputStr, long lInputLen, char *pOutputStr);
【输入】 pInputStr: 输入字符串
lInputLen: 输入字符串长度
【输出】 pOutputStr: 输出字符串,空间已经开辟好,与输入字符串等长;
【注意】只需要完成该函数功能算法,中间不需要有任何IO的输入输出
示例
输入:“4 + 7” 输出:“11”
输入:“4 - 7” 输出:“-3”
输入:“9 ++ 7” 输出:“0” 注:格式错误
#include"stdio.h"#include"stdlib.h"#include"string.h"#include"math.h"int arithmetic(const char *input, int lInputLen, char *output){int sum=0;int operator1=0;int operator2=0;char temp[12]={' '};char *ope;int i=0;while(*input !=' '){if(*input>='0'&&*input<='9'){sum=sum*10+(*input++-'0');}//sum=sum*10+(*input++-'0');elsereturn 0;}input++;operator1=sum;sum=0;i=0;while(*input !=' '){temp[i++]=*input++;}input++;temp[i]='\0';ope=temp;if(strlen(ope)>1){*output++='0';*output='\0';return 0;}i=0;while(*input !='\0'){if(*input>='0'&&*input<='9'){ sum=sum*10+(*input++-'0');}elsereturn 0;}operator2=sum;sum=0;switch(*ope){case '+':itoa(operator1+operator2,output,10);break;case '-':itoa(operator1-operator2,output,10);break;default:*output++='0';*output='\0';return 0;}return 1; }void main(){char inputString[]="11111 - 110"; char outputString[100]; printf("运算前的字符串:\n"); printf("%s\n",inputString); if(arithmetic(inputString,strlen(inputString),outputString)==0)printf("输出格式有误\n");else{printf("运算后的字符串:\n"); printf("%s\n",outputString);} getch();}
0 0
- 字符串加减运算
- 加减运算
- java中字符串的格式以及日期的加减运算
- (华为机试)整数字符串加减运算
- 大整数加减 加减运算
- JAVA日期加减运算
- java日期加减运算
- 4.加减运算指令
- JAVA日期加减运算
- 指针的加减运算
- 多项式加减乘运算
- 指针加减运算
- JAVA日期加减运算
- 复数的加减运算
- JAVA日期加减运算
- 补码的加减运算
- Velocity 页面加减运算
- 日期运算加减年月日
- meta标签及其应用
- Cadence PCB设计之约束管理器(一)——基本设置
- Linux文件管理-list(ls)
- 编程之美:第一章 1.6饮料供货
- XZCVZXCVQWERQWERQWE
- 字符串加减运算
- 反射机制
- 关于 高斯算法计算某数可以被分割成连续自然数之和的组数 个人的一点拙见
- 编程之美:第一章 1.7光影切割问题
- 策略模式
- Search for a Range
- 排序算法比较
- 编程之美:第一章 1.8电梯调度算法
- 黑客星星