
具体代码如下:
#include <iostream>
#include <string>
#include <regex>
using namespace std;
int main()
{
//FILE *stream;
//freopen_s(&stream, "data.txt", "r", stdin);
string s, t;
cin >> s;
t = regex_replace(s, regex("-"), ""); //将分隔符全部删除
char key = t.back(); //提取识别码
t.pop_back();
s.pop_back();
int sum = 0;
for(int i = 0; i < 9; i++)
{
sum += (i + 1) * (t[i] - '0');
}
char cur = (sum % 11) + '0';
if(!isdigit(cur)) cur = 'X';
if(cur == key) cout << "Right";
else cout << s << cur;
//fclose(stream);
return 0;
}
本文介绍了一种基于正则表达式的校验码验证算法,通过去除字符串中的分隔符,提取识别码并计算校验和,最终比较计算出的校验码与原始识别码是否一致,以判断输入字符串的有效性。
301

被折叠的 条评论
为什么被折叠?



