【小韋同學@題解-積極措施】
題目:
描述
近日,一些熱門網站遭受黑客入侵,這些網站的賬号、密碼及email的資料慘遭洩露。你在這些網站上注冊若幹賬号(使用的使用者名不一定相同),但是注冊時使用了相同的email。你此時拿到了那份洩露的資料,希望盡快将自己的密碼更改。政策如下:根據email找到你的使用者名和密碼,然後更改密碼。更改的規則為:小寫和大寫交換,非字母字元保持不變。
輸入
第一行為你的email位址,長度不超過50個字元且隻包含字母、數字和‘@’符号。 第二行為賬号數N(0 < N < 10000)。 接下來N行,每行表示一個賬号,格式為: 使用者名 密碼 email 它們之間用單個空格分開。使用者名、密碼、email均不含空格,且長度不超過50個字元。
輸出
有若幹行,每行為你的一個賬号,包括:你的賬号,修改後的密碼(之間用單個空格分隔)。 如果沒有你的賬号,則輸出empty。
輸入樣例1
[email protected]
5
helloKitty iLoveCats [email protected]
2012 maya2012 [email protected]
KittyCat 5iKitty [email protected]
program password [email protected]
whoAmi Feb.29$ [email protected]
輸出樣例1
helloKitty IlOVEcATS
KittyCat 5IkITTY
whoAmi fEB.29$
輸入樣例2
[email protected]
1
2012 maya2012 [email protected]
輸出樣例2
empty
來源
http://shenben.club/problem?id=128
題解:
/*********************************************************************
* 題目:緊急措施
* 描述:近日,一些熱門網站遭受黑客入侵,這些網站的賬号、密碼及email的數
據慘遭洩露。你在這些網站上注冊若幹賬号(使用的使用者名不一定相同),
但是注冊時使用了相同的email。你此時拿到了那份洩露的資料,希望盡
快将自己的密碼更改。政策如下:根據email找到你的使用者名和密碼,然
後更改密碼。更改的規則為:小寫和大寫交換,非字母字元保持不變。
* 作者:小韋同學
* 郵箱:[email protected]
* 題解:
思路:1)輸入的每組資訊,判斷該組的郵箱是否為你的郵箱,若是,則改密碼
注: 1° 一開始我想到用結構體數組,然後又發現可以用結構體變量,最後發
現用變量就可以了,根本不用把資料存下來。
2° 設定标記位來記錄是否出現過你的郵箱,來處理特殊情況。
*********************************************************************/
#include <string>
#include <iostream>
using namespace std;
void change(string &s) {
for (int i = 0; i < s.size(); i++) {
// 若為大寫字母
if ('A' <= s[i] && s[i] < 'Z') {
s[i] += 'a' - 'A'; // 轉成小寫字母
// 若為小寫字母
} else if ('a' <= s[i] && s[i] <= 'z') {
s[i] -= 'a' - 'A'; // 轉成大寫字母
}
}
}
int main() {
string you; // 你的郵箱
cin >> you;
int n; // 資料組數
cin >> n;
string name; // 使用者名
string pword; // 密碼
string email; // 郵箱
// 标志位,标記是否有你的郵箱,初始為false,代表沒有
bool flag = false;
while (n--) {
cin >> name >> pword >> email;
if (email == you) { // 如果目前輸入的郵箱是你的郵箱
flag = true; // 将标志改為true
change(pword); // 改密碼
cout << name << " " << pword << endl;
}
}
// 若标志位依然是false,說明沒有你的郵箱
if (!flag) cout << "empty";
return 0;
}
我是小韋同學,企者不立,跨者不行,每天進步一點點。
歡迎大家多多交流,如果發現有錯誤,請多指正。有疑問的同學也可以留言評論或者發郵件。郵箱:[email protected]