Computer >> Máy Tính >  >> Lập trình >> C ++

Tìm số cột Excel từ tiêu đề cột trong C ++

Chúng ta biết rằng các số cột trong excel được xếp theo thứ tự bảng chữ cái. Nó bắt đầu từ A, và sau Z, nó sẽ AA, AB, đến ZZ, rồi lại AAA, AAB, đến ZZZ, v.v. Vì vậy, cột 1 là A, cột 27 là Z. Ở đây chúng ta sẽ xem cách lấy ký tự cột nếu số cột được cho. Vì vậy, nếu số cột là 80, thì nó sẽ là CB.

Giả sử chúng ta có một số n, và giá trị của nó là 28, thì chúng ta cần nhắc lại với 26. Nếu phần dư là 0, thì số là 26, 52, v.v. Sau đó, chúng tôi đặt Z trong chuỗi đầu ra. Giá trị của n trở thành n / 26 - 1. Và nếu các phần còn lại khác 0 thì chúng ta chỉ cần chèn ký tự tương ứng vào chuỗi và thực hiện n =n / 26. Cuối cùng mặt trái của chuỗi sẽ được in.

Ví dụ

#include<iostream>
#include<algorithm>
using namespace std;
void showColumnLetters(int n) {
   string str = "";
   while (n) {
      int rem = n%26;
      if (rem==0) {
         str += 'Z';
         n = (n/26)-1;
      }
      else{
         str += (rem-1) + 'A';
         n = n/26;
      }
   }
   reverse(str.begin(), str.begin() + str.length());
   cout << str << endl;
}
int main() {
   int n = 700;
   cout << "Cell name of " << n << " is: ";
   showColumnLetters(700);
}

Đầu ra

Cell name of 700 is: ZX