**如果看不懂可以在底下留言發問**
**試著看懂別人的程式碼也是一種學習^ ^**
[C_ST22-易] 迴文字串 II
問題描述 :
給予一個英文字母與數字參雜的字串,長度限制在256個字母內。請撰寫一程式輸出此字串的迴文字串,將英文字母大寫改為小寫,小寫改為大寫,數字則不改變。
輸入說明 :
輸入為一個長度在256個字母內的英文字母與數字構成的字串。
輸出說明 :
經轉換後的迴文字串。
範例 :
給予一個英文字母與數字參雜的字串,長度限制在256個字母內。請撰寫一程式輸出此字串的迴文字串,將英文字母大寫改為小寫,小寫改為大寫,數字則不改變。
輸入說明 :
輸入為一個長度在256個字母內的英文字母與數字構成的字串。
輸出說明 :
經轉換後的迴文字串。
範例 :
Sample Input: | Sample Output: |
bCd12345 | 54321DcB |
0987654321 | 1234567890 |
- #include <iostream>
- #include <string>
- #include <cmath> //floor()
- #include <string.h> //strcpy()
- using namespace std;
- int main() {
- // [C_ST22-易] 迴文字串 II
- string text;
- int count;
- char change;
- while(cin >> text)
- {
- count = text.size();//string 長度
- char result[count]; //存入回文結果
- strcpy(result, text.c_str());//string to char
- for(int i = 0;i < count;i++) //大小寫轉換
- {
- if(90 >= result[i] && result[i] >= 65)//大寫
- {
- result[i] = char(result[i]+32);
- }
- else if(122 >= result[i] && result[i] >= 97)//小寫
- {
- result[i] = char(result[i]-32);
- }
- }
- for(int i = 0;i < floor(count/2);i++) //迴文
- {
- change = result[i];
- result[i] = result[count-1-i];
- result[count-1-i] = change;
- }
- for(int i = 0;i<count;i++)//輸出
- {
- if(i == count-1)
- {
- cout << result[i] << endl;
- }
- else
- {
- cout << result[i];
- }
- }
- }
- return 0;
- }
沒有留言:
張貼留言