本文共 1082 字,大约阅读时间需要 3 分钟。
#include#include #include #include using namespace std;string a, b, t;char buf[1005];int toInt(string s){ int num = 0; for(int i = 0; i < s.length(); ++i){ num = num*10 + (s[i]-'0'); } return num;}bool isValid(string s){ if(s.length() == 0) return false; for(int i = 0; i < s.length(); ++i){ if(s[i] < '0' || s[i] > '9') return false; } //string转化为char数组 然后使用c中的atoi转换为int strcpy(buf,s.c_str()); int num = atoi(buf);// num = toInt(s); 自己写的数字字符串转化为int if(num < 1 || num > 1000) return false; return true;}int main() { getline(cin, t); for(int i = 0; i < t.length(); ++i){//注意这个需要读取一行 而不是直接cin 因为 第一个字符串可能为空 需要分割 if(t[i] == ' '){ a = t.substr(0,i); b = t.substr(i+1); break; } } if(isValid(a) && isValid(b)){ int n1 = toInt(a); int n2 = toInt(b); printf("%d + %d = %d",n1,n2,n1+n2); } else if(isValid(a) && !isValid(b)){ int n1 = toInt(a); printf("%d + ? = ?",n1); } else if(!isValid(a) && isValid(b)){ int n2 = toInt(b); printf("? + %d = ?",n2); } else{ printf("? + ? = ?"); } return 0; }
转载地址:http://bmimi.baihongyu.com/