์ฝ๋ ์ค๋ช
c++ style string์ ์ฐ์ตํ๊ธฐ ์ํ ์ํธํ ๋ฐ ํด๋ ์ฝ๋์ ๋๋ค.
alphabet ๊ณผ key ๋ฌธ์์ด์ ๊ฐ๊ฐ ์ํธํ์ํฌ ์ํ๋ฒณ๊ณผ ์ํธํ ๊ฒฐ๊ณผ ์ํ๋ฒณ์ ์ ์ฅํด ๋๊ณ ,
.find ๋ฉ์๋๋ก ์ธ๋ฑ์ค๋ฅผ ์ฐพ์์ ๋ณํํ๋ ๋ฐฉ์์ผ๋ก ์งํ๋ฉ๋๋ค.
์ค์ํ ์ ์ ์์ด๋ฅผ ์ ์ธํ ๋์ด์ฐ๊ธฐ, ํน์๋ฌธ์์ ๊ฐ์ ๋ฌธ์๋ alphabet ๋ฌธ์์ด์ ์กด์ฌํ์ง ์๊ธฐ ๋๋ฌธ์,
find ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ ์ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
์ด๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด string::npos์ ๋์ผํ์ง๋ฅผ ํ์ธํฉ๋๋ค.
string::npos๋ 'find๋ฌธ์ผ๋ก ํน์ ๋ฌธ์(์ด)๋ฅผ ์ฐพ์ง ๋ชปํ์ ์' ๋ฐํ๋ฉ๋๋ค.
์๋ฅผ ๋ค์ด, string s1 = "Hello my name is Ricky." ๋ผ๋ ๋ฌธ์์ด์ ๋ํ์ฌ
s1.find("lemon"); ์ ํ์ ์, s1 ๋ฌธ์์ด์ "lemon" ๋ฌธ์์ด์ ํฌํจ๋์ด ์์ง ์๊ธฐ ๋๋ฌธ์ string::npos๋ฅผ ๋ฐํํฉ๋๋ค.
์ด ์ ๋ง ์ธ์งํ๋ฉด ์์ฃผ ์ฝ๊ฒ ์ดํดํ ์ ์๋ ์ฝ๋์ ๋๋ค.
์ฝ๋
#include <iostream>
#include <string>
using namespace std;
int main() {
string message_input {};
string alphabet {"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"};
string key {"XZNLWEBGJHQDYVTKFUOMPCIASRxznlwebgjhqdyvtkfuompciasr"};
// 1. Ask the user to enter a secret message.
cout << "Enter a secret message that you want to encrypt: ";
getline(cin, message_input);
// 2. Encrypt the message using substitution cypher and display it.
for (size_t index = 0; index < message_input.size(); index++){
if (alphabet.find(message_input[index]) == string::npos){
continue;
}
message_input[index] = key.at(alphabet.find(message_input[index]));
}
cout << "\nEncrypting the message..." << endl;
cout << "The secret message has encrypted to: " << message_input << endl;
// 3. Decrypt the encrypted message again and display it.
cout << "\nDecrypting the encrypted message..." << endl;
for (size_t index = 0; index < message_input.size(); index++){
if (alphabet.find(message_input[index]) == string::npos){
continue;
}
message_input[index] = alphabet.at(key.find(message_input[index]));
}
cout << "The original message was: " << message_input << endl;
cout << endl;
return 0;
}
์ถ๋ ฅ ๊ฒฐ๊ณผ
'C++ > ํ๋ก์ ํธ (Project)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[C++] (Program) ํจ์ ์์ฉ ํ๋ก๊ทธ๋จ (0) | 2023.12.18 |
---|---|
[C++] (Program) ์ฌ๊ท ํจ์ ์์ : ์ ์์ ์๋ฆฟ์ ๋ง์ (0) | 2023.12.18 |
[C++] (Program) Word Pyramid/ ๋ฌธ์์ด ํผ๋ผ๋ฏธ๋ (2) | 2023.12.15 |
[C++] (Program) ๋ฐ๋ณต๋ฌธ ์์ฉ ํ๋ก๊ทธ๋จ (1) | 2023.12.13 |