-
[C++] 문자열 안에 있는 영단어의 개수 계산C++/문제풀이 2022. 6. 15. 08:37
Power C++ p.296 14번)
영문 문자열 안에 포함된 영단어의 개수를 계산하여 화면에 출력하는 프로그램 작성
조건
1. isalpha()를 사용하여 공백문자와 단어 구분 가능
2. 영어 알파벳이 연속되다가 공백 문자가 나오면 단어가 끝나는 것으로 간주
#include <iostream> #include <cstring> using namespace std; // p.296 14번) // 영문 문자열 안에 포함된 영단어의 개수를 계산하여 화면에 출력하는 프로그램 작성 // 1. isalpha()를 사용하여 공백문자와 단어 구분 가능 // 2. 영어 알파벳이 연속되다가 공백 문자가 나오면 단어가 끝나는 것으로 간주 int main(){ cout << "\n\n문자열 안에 있는 영단어의 개수 계산" << endl; char sentence[81]; cout << "문장을 입력하세요: "; // cin >> sentence; //단어 입력 OK, 문장입력 => 공백 문자 처리 불가(cin 객체) cin.getline(sentence, 81); //1. 문자열 맨 끝의 길이: 문자열의 length 구하기 int length = strlen(sentence); cout << "입력된 문자열: " << sentence << endl; //2. 루핑을 돌면서 공백 문자를 만날 때마다 count++ => NULL 문자를 만날 때까지 int count = 1; //맨 끝에 있는 단어는 \0을 만나면 공백 없이 바로 종료해버리기 때문에 1로 시작 for (int i = 0; i< length; i++){ if(isalpha(sentence[i]) == false) // sentence[i]가 공백 문자인 경우 count++; } cout << "단어의 개수: " << count << endl; return 0; }
실행 결과
Key Point
1. 개수를 계산하는 변수 int count = 1로 시작
맨 끝에 있는 단어는 '\0'을 만나면 공백을 만나지 않고 바로 종료해버리기 때문에 1로 시작해야 한다.
2.
for (int i = 0; i< length; i++){ if(isalpha(sentence[i]) == false) // sentence[i]가 공백 문자인 경우 count++; }
'C++ > 문제풀이' 카테고리의 다른 글
[C++] 질문 후 답변이 긍정이면 1, 부정이면 0 반환하는 함수 (0) 2022.06.15 [C++] 문자열이 회문인지 알아보는 프로그램 (0) 2022.06.15 [C++] 문자열을 입력받아서 문자열에 포함된 모든 공백 문자를 삭제하는 프로그램 (0) 2022.06.15 [C++] 두 행렬의 곱 구하기(3x3) (0) 2022.06.14 [C++] 난수 발생 시킨 뒤, 숫자의 출현 빈도수 세기(이차원 배열) (0) 2022.06.14