Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 주어진 문자열의 단어 수 세기

<시간/>

공백, 줄 바꿈 문자 및 탭 문자를 사이에 포함할 수 있는 단어가 포함된 문장 또는 문자열이 제공됩니다. 작업은 문자열의 총 단어 수를 계산하고 결과를 출력하는 것입니다.

입력 − string str ="튜토리얼 포인트\t에 오신 것을 환영합니다."

출력 − 문자열의 단어 수는 − 4입니다.

설명 − 한 문자열에는 welcome, to, tutorials, point의 4개 단어가 있고 나머지는 단어 사이에 공백(" "), 다음 줄 문자(\n) 및 탭 문자(\t)가 있습니다.

입력 − string str ="\n정직\t가 최고의 정책입니다."

출력 − 문자열의 단어 수는 − 5입니다.

설명 − 한 문자열에는 4개의 단어 즉, 정직, is, best, policy가 있고 나머지는 단어 사이에 있는 공백(" "), 다음 줄 문자(\n) 및 탭 문자(\t)입니다.

아래 프로그램에서 사용된 접근 방식은 다음과 같습니다.

이에 대한 여러 솔루션이 있을 수 있습니다. 먼저 아래 코드에서 사용한 간단한 접근 방식을 살펴보겠습니다.

  • str[]

    이라고 가정해 봅시다.
  • 두 개의 임시 변수를 선언하십시오. 하나는 문자열의 단어 수를 계산하는 count이고 플래그 작업을 수행하는 temp는

  • str이 null이 아닌 동안 루프 시작

  • 루프 내에서 IF *str =space OR *str =다음 줄 OR *str =tab을 확인한 다음 temp를 0으로 설정

  • 그렇지 않으면 temp =0이면 temp를 1로 설정하고 count 값을 1 증가시킵니다.

  • str 포인터를 1 증가

  • count의 값을 반환합니다.

  • 결과 인쇄

예시

#include
using namespace std;
//count words in a given string
int total_words(char *str){
   int count = 0;
   int temp = 0;
   while (*str){
      if (*str == ' ' || *str == '\n' || *str == '\t'){
         temp = 0;
      }
      else if(temp == 0){
         temp = 1;
         count++;
      }
      ++str;
   }
   return count;
}
int main(){
   char str[] = "welcome to\n tutorials point\t";
   cout<<"Count of words in a string are: "<<total_words(str);
   return 0;
}

출력

위의 코드를 실행하면 다음 출력이 생성됩니다 -

Count of words in a string are: 4