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