蓝桥杯 串的处理 知识点:字符串

50 阅读1分钟

0串的处理 - 蓝桥云课 (lanqiao.cn)

按要求模拟即可:

#include<bits/stdc++.h>
using namespace std;

int main()
{
	string s;getline(cin,s);
	
	for(int i=0;i<s.size();i++)
	{
		//开头字母是小写 那么 转大写 
		if(i==0&&islower(s[i]))s[i]=toupper(s[i]);
	    
	    //删除空格
		if(s[i]==' ') //保留s[i]的空格,s[j]的空格删掉 
		{
			int j=i+1;
			while(s[j]==' ')
			{
				s.erase(j,1);  //删除j位置的一个空格 
			 } 
			 
			 //单词首字母转大写 
			 if(islower(s[j]))
			 {
			   s[j]=toupper(s[j]);
			 } 
		 } 
		 
		 //数字前后+ ‘—'分隔
		 if(isdigit(s[i]))
		 {
           //头插 
		   if(isalpha(s[i-1]))
		   {
		    s.insert(i,"_");	
		   }
		   //尾插 
		   if(isalpha(s[i+1])) 
		   {
		   	s.insert(i+1,"_");
		   }	
		 } 
	}
	
	cout<<s;
	return 0;
}