-
명품 C++ 4장 3번C++ 2018. 10. 29. 23:30
3. string 클래스를 이용하여 빈칸을 포함하는 문자열을 입력받고 문자열에서 'a'가 몇 개 있는지 출력하는 프로그램을 작성해보자.
1) 문자열에서 'a'를 찾기 위해 string 클래스의 멤버 at()나 []를 이용하여 작성하라.
#include <iostream>using namespace std;#include <string>int main() {string text;int aNum=0;cout << "문자열 입력>>";getline(cin, text);for (int i = 0; i < text.length(); ++i) {if (text[i] == 'a') ++aNum;}cout << "문자 a는 " << aNum << "개 있습니다" << endl;}2) 문자열에서 'a'를 찾기 위해 string 클래스의 find() 멤버 함수를 이용하여 작성하라. text.find('a',index);는 text 문자열의 index 위치부터 'a'를 찾아 문자열 내 인덱스를 리턴한다.
#include <iostream>using namespace std;#include <string>int main() {string text;int aNum=0;int index = 0;cout << "문자열 입력>>";getline(cin, text);for (int i = index; i < text.length(); ++i) {int n = text.find('a', index);if (n>index) {++aNum;index = n+1;}}cout << "문자 a는 " << aNum << "개 있습니다" << endl;}실행결과 (두 문제 모두 실행결과 같음)
string 클래스의 find()함수에서 text.find('a',index);는 text문자열의 index위치부터 'a'를 찾아 문자열 내 인덱스를 리턴합니다.
index를 리턴 한 값에 1을 증가시켜 다음 부터 찾을 수 있게 합니다.
'C++' 카테고리의 다른 글
명품 C++ 4장 5번 (0) 2018.10.29 명품 C++ 4장 4번 (0) 2018.10.29 명품 C++ 4장 2번 (0) 2018.10.29 명품 C++ 4장 1번 (0) 2018.10.29 명품 C++ 3장 Open Challenge (0) 2018.10.29