藍橋杯-串的處理
串的處理
1. 把每個單詞的首字母變為大寫。
2. 把數字與字母之間用下劃線字元(_)分開,使得更清晰
3. 把單詞中間有多個空格的調整為1個空格。
例如:
使用者輸入:
you and me what cpp2005program
則程式輸出:
You And Me What Cpp_2005_program
使用者輸入:
this is a 99cat
則程式輸出:
This Is A 99_cat
我們假設:使用者輸入的串中只有小寫字母,空格和數字,不含其它的字母或符號。每個單詞間由1個或多個空格分隔。
假設使用者輸入的串長度不超過200個字元。
解題思路:
先一次性讀取原始串,用一個新的串表示處理過原始串後的字串。
按照空格將原始串分割成子串,再按照轉換規則分別處理子串,將處理後的子串新增到新的串中。
#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
char s[200],ss[200],str[200];//原始讀入串、按空格分離的子串、原始串按要求處理後的串
int k=0;
bool isLatter(char c)//字母判斷
{
if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))
return true;
else return false;
}
bool isNumber(char c)//數字判斷
{
if(c>='0'&&c<='9')
return true;
else return false;
}
void solve(char ss[])//處理串
{
for(int i=0; i<strlen(ss); ++i)
{
if(isLatter(ss[i]))//是字母
{
if(isNumber(ss[i-1])) str[k++]='_';//字母前面是數字要先加下劃線
if(i==0) str[k++]= toupper(ss[i]);//首字母大寫
else str[k++]=ss[i];
}
else if(isNumber(ss[i]))//是數字
{
if(isLatter(ss[i-1])) str[k++]='_';//數字前面是數字要先加下劃線
str[k++]=ss[i];
}
}
}
int main()
{
gets(s);//讀取含空格的整個串
int j=0;
bool flag=true;//標識是否處理過當前串
for(int i=0; i<strlen(s); ++i)
{
if(int(s[i])!=32)//不是空格
{
flag=true;
ss[j++]=s[i];//當前字元加到串中
if(i==strlen(s)-1) solve(ss);//到達串尾,處理當前串
}
else
{
if(flag)
{
flag=false;
solve(ss);//處理當前串
str[k++]=' ';//一個空格分隔
memset(ss,'\0',sizeof(ss));//清空字元陣列
}
j=0;
}
}
cout<<str<<endl;
return 0;
}
/*
you and me what cpp2005program
this is a 99cat
*/
相關文章
- 藍橋杯 航班時間 (字串處理)C字串
- 藍橋杯-從串中取三個不同字元字元
- 藍橋杯 排序排序
- 藍橋杯-N皇后
- 藍橋杯——查詢的妙趣
- 藍橋杯_演算法提高_身份證升級(簡單字元處理)演算法字元
- 藍橋杯年號字串字串
- 藍橋杯 計算方程
- 藍橋杯-座次問題
- 藍橋杯-長草(BFS)
- 密碼脫落——藍橋杯密碼
- 藍橋杯-回形巢狀巢狀
- 藍橋杯-地宮取寶
- 藍橋杯javaB組備賽Java
- 太陽(藍橋杯14屆)
- 藍橋杯-走迷宮(BFS)
- 藍橋杯-矩陣翻硬幣矩陣
- 藍橋杯—演算法訓練演算法
- 藍橋杯--演算法訓練演算法
- 藍橋杯大賽——驅動程式
- 藍橋杯 分巧克力(Java)Java
- 藍橋杯-axf檔案生成01
- 藍橋杯模板(三)python組Python
- 藍橋杯模板(二)python組Python
- 藍橋杯,推導部分和
- 藍橋杯例題-快速分揀
- 藍橋杯-迷宮(BFS+DFS)
- 藍橋杯 (java) 第39級階梯Java
- 基因牛(藍橋杯)動態規劃動態規劃
- Java藍橋杯14年第五題Java
- 藍橋杯——Java基礎(進位制)Java
- 藍橋杯之特殊迴文數JAVAJava
- 藍橋杯嵌入式之點燈
- 藍橋杯-並查集-合根植物並查集
- 【藍橋杯考前突擊】第十屆藍橋杯省賽C/C++大學B組 試題 D 數的分解C++
- 藍橋杯訓練--母牛的故事(很清晰的思路)
- 【藍橋杯考前突擊】第十一屆藍橋杯校賽模擬C/C++ 正整數序列C++
- 藍橋杯練習系統題目集