-
JUNGOL...29일지 2020. 12. 7. 12:20
Language_Code/문자열1/자가진단1
문제
33부터 127 까지의 숫자를 계속 입력받아 입력받은 숫자의 아스키코드에 해당하는 문자를 출력하다가 범위를 벗어나는 입력이 들어오면 종료하는 프로그램을 작성하시오.
입·출력 예
ASCII code =? 66
B
ASCII code =? 122
z
ASCII code =? 0
Hint!
BasicString101.h
#include <iostream>
BasicString101.cpp
void BasicString101::Code() { int var; while (true) { std::cout << "ASCII code =? "; std::cin >> var; if (var < 33 || 127 < var) { break; } std::cout << static_cast<char>(var) << '\n'; } }
Language_Code/문자열1/자가진단2
문제
문자열을 입력받은 뒤 그 문자열을 이어서 두 번 출력하는 프로그램을 작성하시오.
문자열의 길이는 100이하이다.입력 예
ASDFG
출력 예
ASDFGASDFG
BasicString102.h
#include <iostream> #include <string> using std::string;
BasicString102.cpp
void BasicString102::Code() { string str; std::cin >> str; std::cout << str << str; }
Language_Code/문자열1/자가진단3
문제
문자열을 “Hong Gil Dong”으로 초기화 한 후 3번부터 6번까지의 문자를 차례로 출력하시오.
출력 예
g Gi
BasicString103.h
#include <iostream> #include <string> using std::string;
BasicString103.cpp
void BasicString103::Code() { string str{ "Hong Gil Dong" }; std::cout << str.substr(3, 4); }
Language_Code/문자열1/자가진단4
문제
문자열을 입력받고 정수를 입력 받아서 문자열의 맨 뒤부터 정수만큼 출력하는 프로그램을 작성하시오.
만약 입력받은 정수가 문자열의 길이보다 크다면 맨 뒤부터 맨 처음까지 모두 출력한다.
(문자열 길이는 최대 100자 이하이다. )
입력 예
korea 3
출력 예
aer
BasicString104.h
#include <iostream> #include <string> #include <algorithm> using std::string;
BasicString104.cpp
void BasicString104::Code() { string str; size_t n; std::cin >> str >> n; std::reverse(str.begin(), str.end()); if (n > str.size()) { std::cout << str; } else { std::cout << str.substr(0, n); } }
Language_Code/문자열1/자가진단5
문제
두 개의 문자열을 입력받아서 두 문자열의 길이의 합을 출력하는 프로그램을 작성하시오.
각 문자열의 길이는 20자 미만이다.
입력 예
Korean
English
출력 예
13
BasicString105.h
#include <iostream> #include <string> using std::string;
BasicString105.cpp
void BasicString105::Code() { string str1, str2; std::cin >> str1 >> str2; std::cout << str1.size() + str2.size(); }
Language_Code/문자열1/자가진단6
문제
문자를 입력받아 알파벳 문자인 경우에는 그대로 출력하고 숫자인 경우는 아스키코드값을 출력하는 작업을 반복하다가 기타의 문자가 입력되면 종료하는 프로그램을 작성하시오.
* 입출력예에서 진한글씨가 출력
입·출력 예
A
A
1
49
@
Hint!
문자의 아스키코드를 출력하려면 변환지정을 '%c' 대신 '%d' 로 하면 된다.
fflush함수는 호환성이 떨어지므로 fflush(stdin); 대신 getchar();을 한번 더 써주거나 scanf(" %c", &변수); 로 입력받는 것이 안정적이다.
BasicString106.h
#include <iostream> #include <cctype>
BasicString106.cpp
void BasicString106::Code() { char ch; while (true) { std::cin >> ch; if (isalpha(ch)) { std::cout << ch << '\n'; } else if (isdigit(ch)) { std::cout << static_cast<int>(ch) << '\n'; } else { break; } } }
Language_Code/문자열1/자가진단7
문제
문자열을 입력받아 알파벳 문자만 모두 대문자로 출력하는 프로그램을 작성하시오.
문자열의 길이는 100이하이다.입력 예
1988-Seoul-Olympic!!!
출력 예
SEOULOLYMPIC
BasicString107.h
#include <iostream> #include <string> #include <cctype> using std::string;
BasicString107.cpp
void BasicString107::Code() { string str; std::cin >> str; for (int i = 0; i < str.size(); i++) { if (isalpha(str[i])) { std::cout << static_cast<char>(toupper(str[i])); } } }
Language_Code/문자열1/자가진단8
문제
공백을 포함한 100글자 이하의 문자열을 입력받아 문장을 이루는 단어의 개수를 출력하는 프로그램을 작성하시오.
* 문장입력 할 때 gets()함수 대신 fgets() 함수를 사용하세요. C++14 적용!
입력 예
My name is Kimchulsoo
출력 예
4
BasicString108.h
#include <iostream> #include <string> using std::string;
BasicString108.cpp
void BasicString108::Code() { string str; std::getline(std::cin, str); int count{ 1 }; for (int i = 0; i < str.size(); i++) { if (str[i] == ' ') { count++; } } std::cout << count; }
Language_Code/문자열1/자가진단9
문제
문자열을 입력 받아서 문자수만큼 오른쪽으로 한 바퀴 회전하여 출력하는 프로그램을 작성하시오. 문자열의 길이는 100이하이다.
입력 예
PROGRAM
출력 예
MPROGRA
AMPROGR
RAMPROG
GRAMPRO
OGRAMPR
ROGRAMP
PROGRAM
BasicString109.h
#include <iostream> #include <string> using std::string;
BasicString109.cpp
void BasicString109::Code() { string str; std::cin >> str; int n{ static_cast<int>(str.size()) }; for (int i = 1; i <= n; i++) { for (int j = n - i; j < n; j++) { std::cout << str[j]; } for (int j = 0; j < n - i; j++) { std::cout << str[j]; } std::cout << '\n'; } }
NadanKim/CodingTest_JUNGOL: JUNGOL 코딩 테스트를 위한 저장소 (github.com)