'表示结尾的巧租芹字符串表示方式。2.校验和。由数据计算得到的一个数值,具有以"og:type" content="webpage">'表示结尾的巧租芹字符串表示方式。2.校验和。由数据计算得到的一个数值,具有以" /> '表示结尾的巧租芹字符串表示方式。2.校验和。由数据计算得到的一个数值,具有以"> C语言字符串校验和_软件运维_内存溢出

阅读 15

C语言字符串校验和,第1张

请把问题的描述提供的更具体一些,否则无法提供更详细的帮助。

就现有的信息来看,有这几个点:1.C语言字符串

。就是以型氏单字节字符为内容,用'\0'表示结尾的巧租芹字符串表示方式。

2.校验和。由数据计算得到的一个数值,具有以下两个特性:

a)相同的数据计算出的校验和结果必定是相同的

b)数孝毕据有所变动时,计算出的校验和一般不相同

常用的校验和有累加和异或方式。比如,[1,2,3,4,5]这一组数据的累加较验和就是1+2+3+4+5=15

3.异或。异或是一种二进制(逻辑)运算,定义如下:

1与1、0与0的异或结果为0

1与0、0与1的异或结果为1

如35和27,其二进制表示为:100011和11011。低位对齐后进行异或,结果为:111000,也就是56

4.在C语言中,异或运算的运算符为:^

也就是说35^27的值就是56。

【temp=temp+*chk8】

temp加上 chk8地址并携清上隐陵的值 再复绝前制给temp

【if(temp<*chk8)】

如果temp小于chk8地址上的值

temp自增chk8位置

自增

*chk8 你可以当它是个变量

chk8 的值是一个地址chk8++ 指针

往后移,后移的大小和指针指向类型大小一样.

#include<stdio.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=0i<ni++)                           //注意循环的次数。体会i<n的意思,保证能计算到每个字符

{

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)

}

上机运行的时候,把注释全删了吧,要不然可能运行出错,多体会一下吧,这只是其中的一种方法而已,多上机运行代码誉胡则,理解下里面的逻辑,好运。

欢迎分享,转载请注明来源:

内存溢出

原文地址:

http://outofmemory.cn/yw/12448079.html
函数
(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
elementui elementui 一级用户组
C语言双向链表
上一篇
2023-05-25
win10经常自动重启怎么办啊?
2023-05-25

发表评论
请登录后评论... 登录
提交

    评论列表(0条)
保存
{label} {label}