題目:
通過鍵盤輸入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” 註:格式錯誤
分析:先分割字串,分別取得兩個運算元和一個運算子, 然後再做一些非法判斷, 最後進行運算操作;
代碼如下:
package com.wenj.test;
/**
*
* @author wenj91-PC
*
*/
public class TestArithmetic {
public static void main(String args[]){
String strIn = "9 ++ 7";
TestArithmetic ta = new TestArithmetic();
System.out.println(ta.arithmetic(strIn));
}
public int arithmetic(String strIn){
String strTemp = strIn;
String[] strArr = strTemp.split(" ");
int a, b;
try{
a = Integer.parseInt(strArr[0]);
b = Integer.parseInt(strArr[2]);
}catch(Exception e){
return 0;
}
String mid = strArr[1];
char[] strC = mid.toCharArray();
if(strC.length > 1){
return 0;
}
switch(strC[0]){
case '+':
return (a+b);
case '-':
return (a-b);
default:
return 0;
}
}
}