다음과 같이 출력하도록 코드를 작성해 주세요.
<출력 예시>
!@#$%^&*(\'"<>?:;
#include <iostream>
using namespace std;
int main(void) {
cout << "!@#$%^&*(\\'\"<>?:;" << endl;
return 0;
}
작은 따옴표는 \' , 큰 따옴표는 \"
혹은 로 스트링 리터럴로 R"(출력해야 하는거)"; 이렇게 묶어서도 출력할수 있구나..
<문제 설명>
영어 알파벳으로 이루어진 문자열 str이 주어집니다. 각 알파벳을 대문자는 소문자로 소문자는 대문자로 변환해서 출력하는 코드를 작성해 보세요.
<제한사항>
1 ≤ str의 길이 ≤ 20
str은 알파벳으로 이루어진 문자열입니다.
<입출력 예>
입력 #1
aBcDeFg
출력 #1
AbCdEfG
#include <iostream>
#include <string>
using namespace std;
int main(void) {
string str;
cin >> str;
for (int i = 0; i < str.length(); i++)
{
if ((str[i] >= 'A') && (str[i] <= 'Z')) // A부터 Z까지의 대문자라면
{ str[i] = tolower(str[i]); }
else
{ str[i] = toupper(str[i]); } // 반대는 당연히 소문자이므로
}
cout << str;
return 0;
}
다른 사람들꺼 보니까 32를 더하고 빼더라(아스키값)
대문자 A는 65임을 항상 알고 있어야 한다...
length() 말고 size()를 쓰는 사람들도 있길래 왜 그럴까 찾아봤는데, size가 length보다 시간 복잡도가 적어서 그런것 같다. (O(1) > O(n)) 다만 length는 string에 특화되어 있다고 한다.
'C++ Programmers Test > Level 1' 카테고리의 다른 글
[Programmers] [C++] 직사각형 별찍기 / 부족한 금액 계산하기 (0) | 2024.08.16 |
---|---|
[Programmers] [C++] 문자열 다루기 기본 / 자릿수 더하기 (0) | 2024.08.05 |
[Programmers] [C++] x만큼 간격이 있는 n개의 숫자 / 핸드폰 번호 가리기 (0) | 2024.07.29 |
[Programmers] [C++] 덧셈식 / 붙인 문자열 출력하기 / 홀짝 구분 / 문자열 돌리기 (0) | 2024.07.12 |
[Programmers] [C++] 문자열 반복해서 출력하기 (0) | 2024.07.10 |