信息学奥赛一本通 1139:整理药名 | OpenJudge NOI 1.7 15
生活随笔
收集整理的這篇文章主要介紹了
信息学奥赛一本通 1139:整理药名 | OpenJudge NOI 1.7 15
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
【題目鏈接】
ybt 1139:整理藥名
OpenJudge NOI 1.7 15:整理藥名
【題目考點】
1. 字符串處理
2. ASCII碼
- 大小寫判斷
- 判斷一個字符c是不是大寫字母:c >= 'A' && c <= 'Z'或isupper(c)
- 判斷一個字符c是不是小寫字母:c >= 'a' && c <= 'z'或islower(c)
- 大小寫轉換
字符c是一個字母
大寫轉小寫:c = c - 'A' + 'a' 或 tolower(c)
小寫轉大寫:c = c - 'a' + 'A' 或 toupper(c)
其中tolower(),toupper()是<cctype>中的函數
對于toupper函數,如果傳入的是大寫字母,會返回該大寫字母本身。
對于tolower函數,如果傳入的是小寫字母,會返回該小寫字母本身。
【題解代碼】
解法1:使用toupper和tolower函數
#include<bits/stdc++.h> using namespace std; int main() {int n, len;char s[25];cin >> n;for(int i = 0; i < n; ++i){cin >> s;len = strlen(s);s[0] = toupper(s[0]);for(int j = 1; j < len; ++j)s[j] = tolower(s[j]);cout << s << endl;}return 0; }解法2:使用字符ASCII碼原理
#include <bits/stdc++.h> using namespace std; int main() {string s;int n;cin >> n;for(int i = 0; i < n; ++i){cin >> s;if(s[0] >= 'a' && s[0] <= 'z')//如果首字母是小寫字母s[0] = s[0] - 'a' + 'A';//變為大寫字母for(int j = 1;j < s.length(); ++j){if(s[j] >= 'A' && s[j] <= 'Z')//如果某字母是大寫字母s[j] = s[j] - 'A' + 'a';//變為小寫字母}cout << s << endl;}return 0; }總結
以上是生活随笔為你收集整理的信息学奥赛一本通 1139:整理药名 | OpenJudge NOI 1.7 15的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 信息学奥赛一本通(1219:马走日)
- 下一篇: 信息学奥赛一本通(1122:计算鞍点)