字串數字置換 程式設計練習題(100)

2022-06-19 09:30:21 字數 1623 閱讀 4941

目錄

問題:分析:

c++ ac**:

總結:5.

【問題描述】

從鍵盤接收使用者輸入的字串, 對使用者輸入的每個字串的處理是:將字串內的每乙個十進位制數字字元置換成下列**中右邊所對應的乙個字串(所有其他字元不變),然後將轉換的結果顯示在螢幕上;並分別計算每個數字的置換次數。

十進位制數字字元

置換成(zero)

(one)

(two)

(three)

(four)

(five)

(six)

(seven)

(eight)

(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

這道題不難,是一道字串處理題目,對應ccf-csp中第三題,當然ccf-csp第三題肯定沒有這麼簡單。這裡要說的一點是,如何巧用陣列,這裡可以把(one)——(nine)這幾個字串存入乙個字串陣列中,這樣就不用寫if-else函式或者switch函式判斷輸出了,直接根據下標輸出對應的字串。同樣可以應用到每個數字出現次數的統計中,使用乙個陣列統計,0-9對應位置自動+1.

#include #include using namespace std;

int main()

; //cin >> str;

getline(cin,str); //讀入輸入的一行字串

len = str.length(); //計算字串長度,存入len變數

for(int i=0; i<10; i++)number[i]=0; //統計陣列初始化為0

for(int i=0; i='0' && str[i]<= '9') //判斷是否是數字

else

cout << str[i] ; //不是數字直接輸出

}cout 《在oj系統中一開始使用的cin獲取字串,系統只給了10分,後來改用了getline()函式才得100分。這兩個的區別就是cin>>會自動過濾掉不可見字元(如空格 回車 tab等),遇到空格、回車等會結束獲取輸入的字串,後面的字串會過濾掉(存放在輸入流中)。如果後面還需要輸入字串,則會從前面存放的字串開始獲取。而getline()屬於string類的函式,使用時需包含標頭檔案#include。格式為:getline(cin,string s),接收乙個字串,可以接收空格、回車等,會獲取整行內容。

字串練習題

1.請編寫乙個c函式,該函式可以實現將乙個整數轉為任意進製的字串輸出 include include char ch 16 函式宣告 將整數轉換為任意進製的字串 charchar int2sys int num,int n,int move bit int main else if n 8 else...

字串練習題

變數名是否合法 1.變數名只能由字母 數字 下劃線組成 2.只能以字母或下劃線開頭 源 while true s input 變數名 if s exit print 歡迎下次使用 break if s 0 isalpha or s 0 for i in s 1 if not i.isalnum or...

字串練習題

輸入兩個字串,從第乙個字串中刪除第二個字串中所有的字元。例如,輸入 they are students.和 aeiou 則刪除之後的第乙個字串變成 thy r stdnts.s1 input 請輸入第乙個字串 s2 input 請輸入第二個字串 s3 方法一 for i in s1 print i,...