69,369
社区成员
发帖
与我相关
我的任务
分享
// 数据源0|1|XX010001|0|0|0|0|0|0|0|0|0|0|12345678|
// 校验码,最大字符串长度15位,
// 生成方法为将数据每字节(包括分割符管道符|)累加到一个初始值为0的无符号长整型数据中,忽略溢出,最后将无符号长整型数据转换为字符串
#include <stdio.h>
#include <string.h>
char s[]="0|1|XX010001|0|0|0|0|0|0|0|0|0|0|12345678|";
unsigned long int c;
char cs[16];
int i,L;
int main() {
L=strlen(s);
c=0;
for (i=0;i<L;i++) {
c+=(unsigned long int)s[i];
}
sprintf(cs,"%lu",c);
printf("cs=[%s]\n",cs);
return 0;
}