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