-
JUNGOL...32일지 2020. 12. 12. 11:41
Language_Code/문자열2/형성평가1
문제
공백을 포함한 문자열을 입력받아 각 단어로 분리하여 문자열 배열에 저장한 후 입력순서의 반대 순서로 출력하는 프로그램을 작성하시오.
문자열의 길이는 100자 이하이다.
입력 예
C++ Programing jjang!!
출력 예
162 32jjang!!
Programing
C++Hint!
FormativeString201.h
#include <iostream> #include <string> #include <sstream> #include <vector> using std::string; using std::stringstream; using std::vector;
FormativeString201.cpp
void FormativeString201::Code() { string str; std::getline(std::cin, str); string word; vector<string> words; for (stringstream ss{ str }; ss >> word;) { words.push_back(word); } for (int i = static_cast<int>(words.size()) - 1; i >= 0; i--) { std::cout << words[i] << '\n'; } }
Language_Code/문자열2/형성평가2
문제
"flower" "rose" "lily" "daffodil" "azalea" 5개의 단어를 초기화한 후 한 개의 문자를 입력받아서 입력받은 문자가 두 번째나 세 번째에 포함된 단어를 모두 출력하고 마지막 줄에 출력한 단어의 개수를 출력하는 프로그램을 작성하시오.
해당되는 단어가 없으면 "0"만 첫 줄에 출력한다.
입력 예
l
출력 예
flower
lily
2
FormativeString202.h
#include <iostream> #include <string> using std::string;
FormativeString202.cpp
void FormativeString202::Code() { string arr[]{ "flower", "rose", "lily", "daffodil", "azalea" }; char ch; std::cin >> ch; int count{ 0 }; for (int i = 0; i < 5; i++) { if (arr[i][1] == ch || arr[i][2] == ch) { std::cout << arr[i] << '\n'; count++; } } std::cout << count; }
Language_Code/문자열2/형성평가3
문제
단어를 입력받다가 "0"을 입력받으면 입력을 종료하고 그 때까지 입력받은 단어의 개수를 출력하고 홀수 번째 입력받은 단어를 한 줄에 1개씩 출력하는 프로그램을 작성하시오.
단어의 개수는 50개를 넘지 않고, 단어의 길이는 100자 이하이다.입력 예
keyboard
mouse
monitor
0출력 예
3
keyboard
monitor
FormativeString203.h
#include <iostream> #include <string> using std::string;
FormativeString203.cpp
void FormativeString203::Code() { int count{ 0 }; string arr[50]; for (; count < 50; count++) { std::cin >> arr[count]; if (arr[count] == "0") { break; } } std::cout << count << '\n'; for (int i = 0; i < count; i += 2) { std::cout << arr[i] << '\n'; } }
Language_Code/문자열2/형성평가4
문제
10 이하의 정수 n을 입력받고 n개의 문자열을 입력받은 후 그 크기를 비교하여 가장 작은 문자열부터 차례로 출력하는 프로그램을 작성하시오.
문자열의 길이는 100자 이하다. 사전순(아스키코드순)으로 뒤에 나오는 것을 큰 것으로 한다.
입력 예
3
notebook
pencil
eraser출력 예
eraser
notebook
pencil
FormativeString204.h
#include <iostream> #include <string> using std::string;
FormativeString204.cpp
void FormativeString204::Code() { int n; std::cin >> n; string* arr = new string[n]; for (int i = 0; i < n; i++) { std::cin >> arr[i]; } for (int i = 1; i < n; i++) { for (int j = 0; j < n - i; j++) { if (arr[j] > arr[j + 1]) { string temp{ arr[j] }; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } for (int i = 0; i < n; i++) { std::cout << arr[i] << '\n'; } delete[] arr; }
Language_Code/문자열2/형성평가5
문제
5개의 단어(각 단어는 100자 이하)를 입력받은 후 문자와 문자열(100자 이하)을 한 개씩 입력받아 나중에 입력받은 문자나 문자열이 포함된 단어를 모두 출력하는 프로그램을 작성하시오.
찾는 단어가 없으면 “none”이라고 출력한다.입력 예
banana
apple
melon
tomato
pear
n
to출력 예
banana
melon
tomato
FormativeString205.h
#include <iostream> #include <string> #include <climits> using std::string;
FormativeString205.cpp
void FormativeString205::Code() { string arr[5]; for (int i = 0; i < 5; i++) { std::cin >> arr[i]; } char ch; string str; std::cin >> ch >> str; bool hasFound{ false }; for (int i = 0; i < 5; i++) { if (arr[i].find(ch) != SIZE_MAX || arr[i].find(str) != SIZE_MAX) { hasFound = true; std::cout << arr[i] << '\n'; } } if (!hasFound) { std::cout << "none"; } }
Language_Code/문자열2/형성평가6
문제
두 개의 문자열 A와 B 한 개의 정수 n을 입력받아서 A에 B를 연결하고, 변경된 문자열 A에서 n개의 문자를 B에 복사한 후 A와 B를 출력하는 프로그램을 작성하시오. (1≤n,A,B≤100)
입력 예
banana apple 3
출력 예
bananaapple
banle
FormativeString206.h
#include <iostream> #include <string> using std::string;
FormativeString206.cpp
void FormativeString206::Code() { string str1, str2; int n; std::cin >> str1 >> str2 >> n; str1 += str2; str2.replace(0, n, str1.substr(0, n)); std::cout << str1 << '\n'; std::cout << str2; }
Language_Code/문자열2/형성평가7
문제
두 개의 문자열을 입력받아 앞에서부터 정수로 변환 가능한 부분을 변환한 후 두 수의 곱을 출력하는 프로그램을 작성하시오.
각 문자열의 길이는 100이하이다.입력 예
123.45 67@12
출력 예
8241
FormativeString207.h
#include <iostream> #include <string> #include <cctype> using std::string;
FormativeString207.cpp
void FormativeString207::Code() { string str1, str2; std::cin >> str1 >> str2; int var1{ 0 }; for (int i = 0; i < str1.size(); i++) { if (std::isdigit(str1[i])) { var1 = var1 * 10 + (str1[i] - '0'); } else { break; } } int var2{ 0 }; for (int i = 0; i < str2.size(); i++) { if (std::isdigit(str2[i])) { var2 = var2 * 10 + (str2[i] - '0'); } else { break; } } std::cout << var1 * var2; }
Language_Code/문자열2/형성평가8
문제
한 개의 단어를 입력받아서 거꾸로 뒤집어 출력하는 작업을 반복하다가 "END"라고 입력이 되면 종료하는 프로그램을 작성하시오.
입력받는 단어의 길이는 20이하이다.입력 예
Jungol
jjang
END출력 예
lognuJ
gnajj
FormativeString208.h
#include <iostream> #include <string> #include <algorithm> using std::string;
FormativeString208.cpp
void FormativeString208::Code() { string str; while (true) { std::cin >> str; if (str == "END") { break; } std::reverse(str.begin(), str.end()); std::cout << str << '\n'; } }
Language_Code/문자열2/형성평가9
문제
정수, 실수, 문자열을 차례로 입력받아서 새로운 문자열에 출력한 후 전체의 길이를 2등분하여 출력하는 프로그램을 작성하시오. 실수는 반올림하여 소수 셋째자리까지 출력하는 것으로 하고, 새로운 문자열의 길이가 홀수일 때는 첫 번째 줄에 한 개를 더 출력한다. 각 문자열의 길이는 30자 이내이다.
입력 예
12345 5.0123 fighting
출력 예
123455.01
2fighting
FormativeString209.h
#pragma warning(disable : 4996) #include <iostream> #include <string> using std::string;
FormativeString209.cpp
void FormativeString209::Code() { int var1; double var2; string str; std::cin >> var1 >> var2 >> str; char buff[100]; std::sprintf(buff, "%d%.3f%s", var1, var2, str.c_str()); str = buff; bool isOdd{ str.size() % 2 == 1 }; std::cout << str.substr(0, str.size() / 2 + (isOdd ? 1 : 0)) << '\n'; std::cout << str.substr(str.size() / 2 + (isOdd ? 1 : 0)); }
NadanKim/CodingTest_JUNGOL: JUNGOL 코딩 테스트를 위한 저장소 (github.com)