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

นับตัวอักษรในตำแหน่งเดียวกับตัวอักษรภาษาอังกฤษในภาษา C++


เราได้รับสตริงที่มีความยาวเท่าใดก็ได้ที่มีทั้งตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก และงานคือการคำนวณจำนวนอักขระที่อยู่ในตำแหน่งเดียวกับตัวอักษรภาษาอังกฤษ

ตัวอย่าง

Input − String str = eBGD
Output − Count is: 2

คำอธิบาย − B และ D คืออักขระที่อยู่ในลำดับเดียวกันในตัวอักษรภาษาอังกฤษ เนื่องจาก B อยู่ที่ตำแหน่งที่สอง และ D อยู่ที่ตำแหน่งที่สี่

Input − String str = Abcdeizxy
Output − Count is: 5

คำอธิบาย − A, B, C, D และ E คืออักขระที่อยู่ในลำดับเดียวกันในตัวอักษรภาษาอังกฤษ เนื่องจาก A อยู่ที่ตำแหน่งแรก ตามด้วย B, C, D และ E

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

  • ป้อนสตริงที่ประกอบด้วยตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก

  • เริ่มการวนซ้ำจาก 0 ถึงขนาดของสตริงซึ่งสามารถคำนวณได้โดยใช้ฟังก์ชัน size()

  • ตอนนี้ตรวจสอบว่า 'i =str[i] - 'a' หรือ i =str[i] - 'a' ' เนื่องจากสตริงของเรามีทั้งตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก

  • ตอนนี้ ใช้ตัวแปรชั่วคราว สมมุติว่า temp เริ่มต้นด้วย 0 นอกลูป และเริ่มเพิ่มขึ้นด้วย 1 ในลูป

  • ส่งกลับค่าในอุณหภูมิ

  • พิมพ์ผลลัพธ์

ตัวอย่าง

#include<iostream>
using namespace std;
int countalphabet(string str){
   int res= 0;
   // Traverse the string
   for (int i = 0 ; i < str.size(); i++){
      // As all uppercase letters are grouped together
      // and lowercase are grouped together so
      // if the difference is equal then they are same
      if (i == (str[i] - 'a') || i == (str[i] - 'A')){
         res++;
      }
   }
   return res;
}
// main function
int main(){
   string str = "aBTutorIalspOiNT";
   cout <<”Count is:”<< countalphabet(str);
   return 0;
}

ผลลัพธ์

หากเรารันโค้ดด้านบน มันจะสร้างผลลัพธ์ต่อไปนี้

Count is: 2