题目描述:
思路分析:根据下标遍历字符串,“截取”。先是大写字母“截取”,用 isalpha函数,返回1或者0,判断是否到大写字母结尾。再‘+’或者‘-’判断输出什么,(记住空格,漏了就太不小心了)。最后,也是最重要的istringstream()对输入流进行字符串数字分割操作。下面代码走起:
#include <bits/stdc++.h>
using namespace std;
long long value;
int main()
{
string str;
getline(cin, str);
string cst;
for (int i = 0; i < str.size(); i++)
{
if(isalpha(str[i]))//大写字母判断
cst += str[i];
if(str[i] == '+' || str[i] == '-')
{
cout<<cst<<" ";//把前面大写字母输出
if(str[i] == '+')
cout<<"tighten"<<" ";
else
cout<<"loosen"<<" ";
istringstream ist(str.substr(i+1));//str.substr(i+1)从i+1到当前字符串数字末尾
ist>>value;//value表示str.substr() ,istringstream用于字符串分割
cout<<value<<endl;
cst.clear();//清空cst,进行第二个大写字母判断
}
}
return 0;
}
代码运行结果:
(以上内容如有纰漏,可以评论指正)