#include <iostream>
#include <stdlib.h>
#include <vector>
#include <string>
#include <cctype>
using namespace std;
bool isrc(string &s)
{
if(s.size()<2) return false;
if(!(s[0]=='R'&&isdigit(s[1]))) return 0;
int i=1;
while(i<s.size()&&s[i]!='C') i++;
if(i==s.size()) return 0;
return 1;
}
string int2str(int num)
{
string s="";
while(num)
{
int i=num%26;
if(i==0)
{
char c='Z';
s=c+s;
num=num/26-1;
}else
{
char c='A'+num%26-1;
num/=26;
s=c+s;
}
}
return s;
}
string rc2(string &rc)
{
string ans=" ";
int i=1;
while(rc[i]!='C') i++;
int col=atoi(rc.substr(i+1).c_str());
string s=int2str(col);s+=rc.substr(1,i-1);
return s;
}
string fun(int num)
{
string s="";
while(num)
{
char c='0'+num%10;
s=c+s;
num/=10;
}
return s;
}
string i2rc(string &s)
{
int i=0;int col=0;
while(!isdigit(s[i])) {
col=col*26+(s[i]-'A'+1); i++;
}
string r="R";
r+=s.substr(i); r+="C";
r+=fun(col);
return r;
}
int main()
{
// string rc="R23C52",i="BC23";
// cout<<rc2(rc)<<endl;
// cout<<i2rc(i);
int n;cin>>n;
for(int i=0;i<n;i++)
{
string rc,s;
cin>>rc;
if(isrc(rc)) s=rc2(rc);
else s=i2rc(rc);
cout<<s<<endl;
}
}
编号转换
最新推荐文章于 2018-05-29 16:44:37 发布