天天看點

緊急措施

【小韋同學@題解-積極措施】

題目:

描述

近日,一些熱門網站遭受黑客入侵,這些網站的賬号、密碼及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]

繼續閱讀