Cho chuỗi str chứa chữ cái tiếng Anh. Nhiệm vụ: tìm vị trí của mỗi chữ cái trong bảng chữ cái bằng phép toán bit.
Mô tả: Trả về vị trí của từng ký tự (A=1, B=2...). Không phân biệt chữ hoa/thường.
Ví dụ:
Đầu vào: str = "Tutorialspoint"
Đầu ra: 20 21 20 15 18 9 1 12 19 16 15 9 14 20
Phương pháp giải
Dùng phép AND bitwise với 31 (0b11111) để lấy 5 bit thấp của mã ASCII, cho ra vị trí 1-26.
Chương trình minh họa
Ví dụ
#include <iostream>
using namespace std;
void findLetterPosition(string str, int n) {
for (int i = 0; i < n; i++) {
cout << (str[i] & 31) << " ";
}
}
int main() {
string str = "TutorialsPoint";
int n = str.length();
cout << "The letters position in string " << str << " is \n";
findLetterPosition(str, n);
return 0;
}
Kết quả
The letters position in string TutorialsPoint is 20 21 20 15 18 9 1 12 19 16 15 9 14 20