
正文
c语言实现校验和,c语言验证完数
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
如何校验和是通过一定的算法扫描一个数据计算出的一个数值。用C语言
#includestdio.h
int Quicksum(char *str) //用指针做校验函数的参数,来接收被校验的字符串A;
{
int sum=0,loc=1,i,n; //sum代表校验和,loc代表每个字符在字符串A里的位置;
char *p;
p=str; //将被校验字符串A的地址赋值给字符指针p,用p表示位置;
n=strlen(p); // 用strlen函数求出A的有效长度;
for(i=0;in;i++) //注意循环的次数。体会in的意思,保证能计算到每个字符
{
if((*p)==' ') {p++; loc++;continue;} //如果遇到空格,就将位置指针向后移动一个,跳过空格
//注意loc也要增加一,为了正确记录每个字符的位置
sum+=((*p-'A')+1)*loc; //如果此处不是空格,就根据校验计算该位置所代表的和,进行累加
loc++; //将位置指针移动到下一个字符,同时loc也跟着变化
p++;
}
return sum; //返回校验和
}
void main()
{
int jiaoyanhe;
char *string;
printf("Please input (A-Z) : ");
gets(string); //使用gets函数输入字符串;
jiaoyanhe=Quicksum(string); //调用Quicksum函数进行校验和的计算。
printf("jiao yan he : ");
printf("%d\n",jiaoyanhe);
}
上机运行的时候,把注释全删了吧,要不然可能运行出错,多体会一下吧,这只是其中的一种方法而已,多上机运行代码,理解下里面的逻辑,好运。
相关问答
Q1: C语言累加和校验
用位运算按位与得出校验数,参考代码如下:
#includestdio.h
int main()
{
char str[101];
int i,sum;
gets(str);
i=sum=0;
while(str[i]!=0)
sum+=str[i++];
printf("%d",sum(0x0FF));
return 0;
}
Q2: 校验和的C语言解答
【temp=temp+*chk8;】
temp加上 chk8地址上的值 再复制给temp
【if(temp*chk8)】
如果temp小于chk8地址上的值
temp自增
chk8位置自增
*chk8 你可以当它是个变量
chk8 的值是一个地址
chk8++ 指针往后移,后移的大小和指针指向类型大小一样.
c语言实现校验和的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c语言验证完数、c语言实现校验和的信息别忘了在本站进行查找喔。








