截取字符串,并输出字符串里数字(使用string相关函数,c++)

题目描述:

思路分析:根据下标遍历字符串,“截取”。先是大写字母“截取”,用 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;
}

代码运行结果: 

 

(以上内容如有纰漏,可以评论指正)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值