string類運用 特殊的翻譯

2022-07-30 21:03:16 字數 1203 閱讀 5303

小明的工作是對一串英語字元進行特殊的翻譯:當出現連續且相同的小寫字母時,須替換成該字母的大寫形式,在大寫字母的後面緊跟該小寫字母此次連續出現的個數;與此同時,把連續的小寫字母串的左側和右側的字串交換位置;重複該操作,直至沒有出現連續相同的小寫字母為止。現在小明想請你幫他完成這種特殊的翻譯。

輸入一串由小寫字母構成的字串。(字串長度不大於250)

輸出翻譯後的字串

lodnkmgggggggoplerre

eg7lodnkmr2ople

1.在讀入的字串中查詢相同且連續的小寫字母,並記錄個數

2.將連續的小寫字母替換成單個對應的大寫字母

3.將統計的個數轉化成字元型

4.求出相同字元前後子串並交換

5.重複以上步驟直到字串不再發生變化為止。

由於這裡如果運用字元陣列來模擬會比較繁瑣,所以我採用了c++的sting型別,通過運用其中的成員函式來降低模擬難度。

(1)重複個數整型轉化為字元型

(2)字串處理

(3)完整**

#include#include#includeusing namespace std;

void sovle(unsigned char *a,int sum)

else

else a[0]=t+48;

} }string ans(string s1)

if(sum>1)

if(sum>1) return s1;

}return s1;

}int main()

cout這題在解題過程中還是遇到不少問題,比如在沒有限定條件之前,連續的數字也會被錯判成連續的字母並處理;還有就是由於處理並調換子串的時候,字元的位置和長度會發生改變,所以字元替換的次序上一不小心就會出錯。通過這道題,我學習鞏固了c++ string類的相關知識,了解到了更多有關string類的用法,還是收穫良多的。

string是特殊的引用型別,特殊在何處

對於string這個引用型別是非常特殊乙個引用型別。它有兩點特殊的地方。第一點物件分配的特殊。例如 string str1 abcd string str2 abcd 那麼.net在分配string型別的時候,先檢視當前string型別列表是否有相同的,如果有的話,直接返回其的引用,否則重新分配。第...

String 類的實現(3)String類常用函式

1 2 include3 include4 include5 include 6 using namespace std 自己模擬實現的部分相關c string庫函式 8int my strlen const char p 9 17return count 18 19char my strcopy ...

Kotlin的特殊類

一 資料類 1.1 使用 我們經常建立一些資料類來儲存乙個物件的屬性和狀態,在這些類中一些標準的get set函式都是機械推導出來的,在kotlin中這些類被標記為資料類,使用關鍵字data宣告 data class user val name string,var age int 編譯器自動從資料...