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

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

เราได้รับสตริงที่มีตัวอักษรพิมพ์ใหญ่และเล็ก งานคือการนับตัวอักษรที่อยู่ในตำแหน่งดัชนี (index) เท่ากับลำดับในตัวอักษรภาษาอังกฤษ (A=1, B=2, ...)

ตัวอย่าง

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

คำอธิบาย − B(ดัชนี 1, ลำดับ 2) และ D(ดัชนี 3, ลำดับ 4) ตรงกัน (ใช้ 0-indexed: i == str[i]-'A' หรือ 'a')

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

คำอธิบาย − A(0), B(1), C(2), D(3), E(4) ตรงกับลำดับ 1,2,3,4,5 (0-indexed)

แนวทางการแก้ปัญหา

  • วนลูป i จาก 0 ถึงความยาวสตริง
  • ตรวจสอบ i == str[i] - 'a' (สำหรับพิมพ์เล็ก) หรือ i == str[i] - 'A' (สำหรับพิมพ์ใหญ่)
  • ถ้าใช่เพิ่มตัวนับ

ตัวอย่างโค้ด C++

#include <iostream>
using namespace std;

int countAlphabetPosition(string str) {
    int res = 0;
    for (int i = 0; i < str.size(); i++) {
        if (i == (str[i] - 'a') || i == (str[i] - 'A')) {
            res++;
        }
    }
    return res;
}

int main() {
    string str = "aBTutorIalspOiNT";
    cout << "Count is: " << countAlphabetPosition(str);
    return 0;
}

ผลลัพธ์

Count is: 2

บทความนี้อธิบายวิธีนับตัวอักษรในสตริงที่ตำแหน่งดัชนี (0-based) ตรงกับลำดับในตัวอักษรอังกฤษ (A=0, B=1, ...) สำหรับทั้งพิมพ์ใหญ่และเล็ก