Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

นับคำในสตริงที่กำหนดใน C++


เราได้รับประโยคหรือสตริงที่มีคำที่สามารถมีช่องว่าง อักขระขึ้นบรรทัดใหม่ และอักขระแท็บในระหว่างนั้น งานคือการคำนวณจำนวนคำทั้งหมดในสตริงและพิมพ์ผลลัพธ์

ป้อนข้อมูล − string str =“ยินดีต้อนรับสู่\nจุดสอน\t”

ผลผลิต − จำนวนคำในสตริงคือ − 4

คำอธิบาย − มีสี่คำในสตริง เช่น welcome, to, tutorials, point และส่วนที่เหลือเป็นช่องว่าง(“ ”) อักขระบรรทัดถัดไป(\n) และอักขระแท็บ(\t) อยู่ระหว่างคำ

ป้อนข้อมูล − string str =“\nความซื่อสัตย์\t คือนโยบายที่ดีที่สุด”

ผลผลิต − จำนวนคำในสตริงคือ − 5

คำอธิบาย − มีคำสี่คำในสตริง เช่น ความซื่อสัตย์ คือ ดีที่สุด นโยบาย และส่วนที่เหลือคือช่องว่าง(“ ”) อักขระบรรทัดถัดไป (\n) และอักขระแท็บ (\t) อยู่ระหว่างคำ

แนวทางที่ใช้ในโปรแกรมด้านล่างมีดังนี้

อาจมีวิธีแก้ปัญหาหลายประการสำหรับสิ่งนี้ มาดูแนวทางที่ง่ายกว่าที่เราเคยใช้ในโค้ดด้านล่างนี้กันก่อน -

  • สร้างอาร์เรย์ประเภทถ่านสำหรับจัดเก็บสตริง สมมติว่า str[]

  • ประกาศตัวแปรชั่วคราวสองตัว ตัวหนึ่งถูกนับเพื่อนับจำนวนคำในสตริง และ temp เพื่อดำเนินการแฟล็ก

  • เริ่มวนซ้ำในขณะที่ str ไม่เป็นโมฆะ

  • ภายในลูป ให้ตรวจสอบ IF *str =space OR *str =next line OR *str =tab จากนั้นตั้งค่า temp เป็น 0

  • อื่น ถ้า temp =0 ให้ตั้งค่า temp เป็น 1 และเพิ่มค่าของการนับขึ้น 1

  • เพิ่มตัวชี้ str 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