ACM程式設計書中題目 J(大寫字母的更替)

2021-07-28 01:34:06 字數 1095 閱讀 6708

題目大意:首先輸入乙個n,然後接下來n行每一行輸入一串由不多於50個大寫字母組成的字串,將字串中的每乙個字母都依次變為其下乙個字母,例:a->b,c->d,以此類推,z->a。

解題思路:

1、該題是多組測試資料,且每組測試資料的字串數量確定,所以先輸入n,之後用while(cin>>n)。

2、因為有大量的測試資料,所以應用結構體,首先要把每組測試資料中的字串進行輸入,即構建乙個結構體,應用char型陣列,輸入測試資料。

3、對於每組測試資料,由於字母的變換規律相同,所以很容易想到應用字元的acsii碼值,即對於乙個陣列內所有的字母,除z之外的,均可以直接將該字母+1,得到新的字母,而z則-25,完成對字串的變換。

4、對結構體內字元陣列的輸出,用迴圈,逐個輸出。要注意的是,樣例輸出中的string #1中間有空格,所以輸出要控制格式。

源**#include

using namespace std;

struct aaa           //定義結構體

char a[50];

}b[10000];

int main()

int i,n,l,j;

while(cin>>n)   //輸入n

for (i=1;i<=n;i++)

cin>>b[i].a;    //輸入字串

for (j=0;j<(int)strlen(b[i].a);j++)    //字串內字母的變換

if (b[i].a[j]=='z')

b[i].a[j]=b[i].a[j]-25;

else

b[i].a[j]=b[i].a[j]+1;

for (i=1;i<=n;i++)    //輸出

cout<<"string #"cout做題感想:在乙個自認為比較難的題沒有解決之後,做了這個還是比較簡單的題。這個題因為粗心提交錯了好幾遍,主要文體出現在了字母的變換以及輸出的格式。之前幾次提交錯誤是因為z變a的時候粗心寫成了-26,應該是-25,輸出的格式首先第一點是每組樣例後都有一行空格,其次string和#之間有空格,這些都是不應該出現的問題。雖然a了,但是以後還是要注意避免這些不該出現的錯誤。不過總算做出來乙個,雖然比較簡單但是還是比較開心的。

《ACM程式設計》書中題目 J

題目簡要 輸入從乙個整數n 這是要跟隨的字串數。以下n行每個包含乙個最多50個大寫字母的字串。對於輸入中的每個字串,首先輸出字串的編號,列印字串start是從輸入字串匯出的,每次都替換為字母表中的以下字母,並用 a 替換 z 在每個測試用例後列印空白行。例如 sample input 2hal sw...

python 大寫字母的凱撒加密

問題描述 凱撒密碼是古羅 撒大帝用來保護重要軍情的加密系統。這套密碼系統在現在看來很低階,但是在古羅馬時期還是發揮了重要作用的。凱撒密碼的根本思想是按照字母表排列順序將明文中每個字母變換成其後第n個字母。這裡,n n 1 25 被稱作秘鑰。請編寫程式,針對不同的輸入字串和移動位數,輸出經過凱撒加密之...

筆試題目之字串中將大寫字母移動至末尾

某軟體公司筆試題目 程式設計實現一函式,將字串中的所有大寫字母按順序移動至字串的末尾。實現思想 根據選擇排序的思想,對字串從末尾向前移動,如果為大寫繼續移動,如果為小寫,記錄下該位置,然後從前面的字元中找到第乙個大寫,進行交換。下面是 void movestr char s if flag brea...