[BOJ] 백준_10820번_문자열 분석 / C++백준 알고리즘2021. 9. 6. 09:57
목차
문제 출처
https://www.acmicpc.net/problem/10820
코드
//[BOJ] 10820번_문자열 분석
#include <iostream>
#include <string.h>
#define SIZE 100
using namespace std;
int main()
{
while (1)
{
int i = 0;
int upper = 0, lower = 0, num = 0, blank = 0;
char str[SIZE + 1];
cin.getline(str, SIZE+1);
if (strlen(str) == 0)
return 0;
while (str[i] != '\0')
{
if (str[i] >= 'a' && str[i] <= 'z')
lower++;
else if (str[i] >= 'A' && str[i] <= 'Z')
upper++;
else if (str[i] >= '0' && str[i] <= '9')
num++;
else if (str[i] == ' ')
blank++;
i++;
}
cout << lower << " " << upper << " " << num << " " << blank << endl;
}
return 0;
}
첫 번째 발생한 오류는 라이브러리 참조 오류이다. 이전 글에서와 마찬가지로 strlen 함수를 사용했을 경우 string.h 라이브러리가 아닌 string 라이브러리를 참조하면 컴파일 오류가 발생한다. 두 번째와 세 번째 오류는 문자열 크기 할당 시 cin.getline(str, SIZE+1); 부분에서 SIZE+1을 그냥 SIZE로 작성했을 때 발생한 오류이다. SIZE로만 작성할 경우 총 크기가 100이 아닌 99까지밖에 문자열을 저장할 수 없어지기 때문에 반드시 1을 더해주어야 한다.
728x90
반응형
LIST
'백준 알고리즘' 카테고리의 다른 글
[BOJ] 백준_11653번_소인수분해 / C++ (0) | 2021.09.08 |
---|---|
[BOJ] 백준_10808번_알파벳 개수 / C언어 (0) | 2021.09.07 |
[BOJ] 백준_2743번_단어 길이 재기 / C++ (0) | 2021.09.06 |
[BOJ] 백준_11655번_ROT13 / C언어, C++ (0) | 2021.09.06 |
[BOJ] 백준_10824번_네 수 / C언어 (0) | 2021.09.03 |
@kdj :: Childev'note
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!