通過鍵盤輸入100以內正整數的加、減運算式,請編寫一個程序輸出運算結果字符串。,鍵盤輸入整數
題目描述(50分):
通過鍵盤輸入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<iostream>
#include<string>
using namespace std;
int main()
{
string s;
string s1,s2,oper;
getline(cin,s);
int a=s.find(" ");
s1=s.substr(0,a);
s.erase(0,a+1);
int b=s.find(" ");
oper=s.substr(0,b);
s.erase(0,b+1);
s2=s;
int c=atoi(s1.c_str());
int d=atoi(s2.c_str());
if(oper=="+")
cout<<c+d<<endl;
else if(oper=="-")
cout<<c-d<<endl;
else
cout<<0<<endl;
return 0;
}
注意 VC6.0中getline()函數需要輸入兩次回車才能輸入,可能是VC6.0的bug,在VS2010中輸入一次回車就可以