// 罗马字符串转数字
// VC2008通过
#include "stdafx.h"
#include<stdio.h>
// 罗马字符串转数字
int GetNumber(const char* strNum)
{
int nValue = 0;
while(*strNum != '\0')
{
int nN = 0;
char c = *(strNum+1);
switch(*strNum)
{
case 'I':
nN = ((c != 'V' && c!= 'X') ? 1 : -1);
break;
case 'V':
nN = 5;
break;
case 'X':
nN = ((c != 'L' && c != 'C') ? 10 : -10);
break;
case 'L':
nN = 50;
break;
case 'C':
nN = ((c != 'D' && c != 'M') ? 100 : -100);
break;
case 'D':
nN = 500;
break;
case 'M':
nN = 1000;
break;
}
nValue += nN;
++strNum;
}
return nValue;
}
int _tmain(int argc, _TCHAR* argv[])
{
char strData[] = "CMXCIX";
int nValue = GetNumber(strData);
printf("%s = %d\n", strData, nValue);
return 0;
}
罗马字符串转数字
最新推荐文章于 2022-04-06 22:44:37 发布