Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Chuyển chữ thường thành hoa nếu ASCII nguyên tố cùng nhau với k trong C++


Cho chuỗi và số nguyên k. Duyệt chuỗi, chuyển thành chữ hoa các ký tự chữ thường có giá trị ASCII nguyên tố cùng nhau với k.

Chương trình C++

#include <bits/stdc++.h> 
using namespace std; 

void convert_string(string s, int k) {
    int l = s.length();
    for (int i = 0; i < l; i++) {
        int ascii = (int)s[i];
        // Kiểm tra chữ thường và nguyên tố cùng nhau với k
        if (ascii >= 'a' && ascii <= 'z' && __gcd(ascii, k) == 1) {
            char c = s[i] - 32;  // Chuyển sang chữ hoa
            s[i] = c;
        }
    }
    cout << s << "\n";
}

int main() {
    string s = "tutorialspoint";
    int k = 3;
    convert_string(s, k);
    return 0;
}

Kết quả

TuToriAlSPoiNT

Giải thích

  • Chuỗi gốc: "tutorialspoint"
  • k = 3
  • ASCII chữ thường: a=97, b=98, ..., z=122
  • Nguyên tố cùng nhau với 3: các số không chia hết cho 3
  • Ký tự được chuyển: t(116), T(84), r(114), A(65), S(83), P(80), N(78), T(84)

Lưu ý

Sử dụng __gcd từ <bits/stdc++.h> (GNU extension). Chuẩn C++17 dùng std::gcd từ <numeric>.