c_cpp [罗马数字转十进制数]接收罗马数字字符串,返回一个int型十进制数#字符串处理
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp [罗马数字转十进制数]接收罗马数字字符串,返回一个int型十进制数#字符串处理相关的知识,希望对你有一定的参考价值。
int RomanNumberToDecimal(char* roman) {
int index[26] = {
0,0,100,500,0,0,0, //C-100 D-500
0,1,0,0,50,1000,0, //I-1 L-50 M-1000
0,0,0,0,0,0,
0,5,0,10,0,0}; //V-5 X-10
int n = 0, i = 0;
while(i < strlen(roman) - 1) {
int p = index[roman[i] - 'A'];
int q = index[roman[i+1] - 'A'];
if(p >= q) {
n += p;
i += 1;
}else { //两位字母组成一个数的情况
n += q - p;
i += 2;
}
}
//while 结束时 i = strlen(roman)-1 或 strlen(roman)
//i = strlen(roman)-1 时,最后一位字母没有计算
if(i == strlen(roman) - 1) {
n += index[roman[i] - 'A'];
}
return n;
}
以上是关于c_cpp [罗马数字转十进制数]接收罗马数字字符串,返回一个int型十进制数#字符串处理的主要内容,如果未能解决你的问题,请参考以下文章
C语言 字符串转数字 急急急
c_cpp 罗马数字到十进制数
十六进制字符串转十进制整数
C语言如何把11位16进制字符串转成16进制数?
c语言十六进制字符转化成十进制数字问题
C语言如何把11位16进制字符串转成16进制数?