当输入为 A 时,C++ 方法 return 字母 B 直到 ZZ

C++ method to return alphabet B when input is A so on till ZZ

C++ 方法到 return 字母 B 当输入是 A 直到 Z 然后如果输入是 Z 方法应该 return AA 如果输入是 AA 方法应该 return AB,以此类推直到 ZZ。请找到我正在尝试的示例程序。

void getString(string s){

    for (char ch = 'A'; ch<= 'Z';)
    {
        cin >> ch;
        ch++;
        cout<< ch;
        if (ch = 'Z')
        {
            cout << "in loop";

            for (char k = 'A'; k<= 'Z';){

                for (char j = 'A'; j<= 'Z';j++){
                    char res = k + j;

                    cout << res;
                }
                k++;
                }               
        }       

    }
}

int main() {


getString("");

    return 0;
}

使用if (ch == 'Z')代替if (ch = 'Z')

= 运算符用于为变量赋值。但是 == 是一个比较运算符:

if (ch = 'Z')       // assign `Z` to ch and check if it's not `[=10=]` (always true)
if (ch == 'Z')      // Compare ch with `Z`

使用 char res = k + j; 不能连接字符,您应该使用 strcat() 或仅对元素使用 + 运算符。

试试下面的方法:

void getString(string s)
{
    if(s.length() == 1)
    {
        if(s[0] == 'Z')
            cout << "AA";
        else
            cout << static_cast<char>(s[0] + 1);
    }
    else if(s.length() == 2)
    {
        if(strcmp(s.c_str(), "ZZ") == 0)
        {
            cout << "ZZ";
        }
        else
        {
            if(s[1] != 'Z')
            {
                cout << s[0] << static_cast<char>(s[1] + 1);
            }
            else if(s[1] == 'Z')
            {
                cout << static_cast<char>(s[0] + 1) << 'A';
            }
        }
    }
}

int main() {
    char res[3] = {0};
    cin >> res;
    getString(res);

    return 0;
}