标签:c++
这是本人上个月做的,武汉地区的上机题中的第三个,三个题目都是字符串的,共450分,两个小时内完成。
仿照Excel的列编号,给出该列编号字符串,输出一个数字。
例如:a对应1,z对应26,aa对应27,az对应52 ……
#include <iostream> #include <string> using namespace std; //字符串到数字的转换,相当于26进制 int stoi(char *s) { int n=0;//字符串长度 int i=0;//循环变量 int a,m;//中间变量 int val=0;//转换后的值 char *p=NULL;//指针变量 n=strlen(s); p=s+n-1;//指向字符串最后一个字符 //从个位开始往前计算 for (i=1; i<=n; i++) { a=i; m=1; while(a>1) { m*=26; a--; } m*=(*p-'a'+1); val+=m; } return val; } int main() { char out[255] = {0}; cin>>out; int b=stoi(out); cout<<b<<endl; getchar(); return 0 ; }
标签:c++
原文地址:http://blog.csdn.net/lsh_2013/article/details/45478659