罗马字符串转数字

来源:互联网 发布:matlab取数组长度 编辑:程序博客网 时间:2024/04/27 15:57
// 罗马字符串转数字// 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;}