हमें एक वाक्य या स्ट्रिंग दिया जाता है जिसमें ऐसे शब्द होते हैं जिनमें रिक्त स्थान, नई पंक्ति वर्ण और बीच में टैब वर्ण हो सकते हैं। कार्य एक स्ट्रिंग में शब्दों की कुल संख्या की गणना करना और परिणाम प्रिंट करना है।
इनपुट − स्ट्रिंग str ="आपका स्वागत है\n ट्यूटोरियल पॉइंट\t"
आउटपुट − एक स्ट्रिंग में शब्दों की संख्या है − 4
स्पष्टीकरण - एक स्ट्रिंग में चार शब्द होते हैं यानी वेलकम, टू, ट्यूटोरियल्स, पॉइंट और बाकी हैं स्पेस (“ ”), नेक्स्ट लाइन कैरेक्टर (\n) और टैब कैरेक्टर (\t) शब्दों के बीच मौजूद।
इनपुट - स्ट्रिंग str ="\nईमानदारी\t सबसे अच्छी नीति है"
आउटपुट − एक स्ट्रिंग में शब्दों की संख्या है − 5
स्पष्टीकरण - एक स्ट्रिंग में चार शब्द हैं यानी ईमानदारी, है, द, बेस्ट, पॉलिसी और बाकी हैं स्पेस (""), नेक्स्ट लाइन कैरेक्टर (\n) और टैब कैरेक्टर (\t) शब्दों के बीच मौजूद हैं।
नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है
इसके लिए कई समाधान हो सकते हैं। तो आइए सबसे पहले नीचे दिए गए कोड में उपयोग किए गए सरल दृष्टिकोण को देखें -
-
स्ट्रिंग को स्टोर करने के लिए चार प्रकार की एक सरणी बनाएं मान लें, str[]
-
दो अस्थायी चर घोषित करें, एक स्ट्रिंग में शब्दों की संख्या की गणना करने के लिए गिना जाता है और ध्वज संचालन करने के लिए अस्थायी होता है
-
लूप प्रारंभ करें जबकि str रिक्त नहीं है
-
लूप के अंदर, IF *str =space या *str =अगली पंक्ति या *str =टैब जांचें, फिर अस्थायी को 0 पर सेट करें
-
और अगर अस्थायी =0 तो अस्थायी को 1 पर सेट करें और गिनती के मान को 1 से बढ़ा दें
-
स्ट्र पॉइंटर को 1 से बढ़ाएं
-
मान को गिनती में लौटाएं
-
परिणाम प्रिंट करें
उदाहरण
#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