【問題描述】
從鍵盤接收用戶輸入的字符串, 對用戶輸入的每個字符串的處理是:將字符串內的每一個十進制數字字符置換成下列表格中右邊所對應的一個字符串(所有其他字符不變),然後將轉換的結果顯示在屏幕上;並分別計算每個數字的置換次數。
十進制數字字符
置換成
0
(Zero)
1
(One)
2
(Two)
3
(Three)
4
(Four)
5
(Five)
6
(Six)
7
(Seven)
8
(Eight)
9
(Nine)
例如,若用戶輸入的字符串爲
Page112-Line3,
則程序5的輸出是:
Page(One) (One) (Two)-Line(Three),
數字0到9的置換次數分別是 0 2 1 1 0 0 0 0 0 0
【輸入形式】
輸入一行字符串,其中可包含字母、數字、空格或其他符號(英文)
【輸出形式】
第一行爲將字符串中的數字轉換爲表格中的內容後輸出
第二行爲數字0~9被轉換的次數
【樣例輸入】
Page112-Line3
【樣例輸出】
Page(One)(One)(Two)-Line(Three)
0 2 1 1 0 0 0 0 0 0
//switch case語句
#include<iostream>
#include<string>
using namespace std;
int main()
{
string str;
getline(cin,str);//字符串有可能空格頓開
int len=str.length();
int num[10]={0};
for(int i=0;i<len;i++)
{
switch(str[i])
{
case '0':num[0]++;cout<<"(Zero)";break;//陷阱!區別 ‘0’和0
case '1':num[1]++;cout<<"(One)";break;
case '2':num[2]++;cout<<"(Two)";break;
case '3':num[3]++;cout<<"(Three)";break;
case '4':num[4]++;cout<<"(Four)";break;
case '5':num[5]++;cout<<"(Five)";break;
case '6':num[6]++;cout<<"(Six)";break;
case '7':num[7]++;cout<<"(Seven)";break;
case '8':num[8]++;cout<<"(Eight)";break;
case '9':num[9]++;cout<<"(Nine)";break;
default:cout<<str[i];
}
}
cout<<endl;
for(int i=0;i<10;i++)
{
cout<<num[i]<<" ";
}
return 0;
}
switch case 語句
https://blog.csdn.net/ccmaa/article/details/51000422