字符串转定常数.c

#include <stdio.h>
#include <string.h>

// 将一个不定长的字符串转换为一个定长的数字
// 输入:字符串
// 输出:16位数字
   /* 转换格式:将字符串分成n组,每组16个字符,
   将n组字符串相应位置的字符相加,如果值不是个位数,
   则各个位再进行相加,直到为个位数为止,
   最终得出的16个数字即要求输出的数字 */

#define N 1000

int main()
{
	char str[N];
	int res[16] = {0};
	scanf ("%s", str);
	
	int len = strlen(str);
	int i;
	for (i = 0; i < 16; i++){
		int temp = 0;
		while (temp+i<len){
			res[i] += str[temp+i];
			temp += 16;
		}
		
		while (res[i] > 15){
			res[i] = res[i]%16 + res[i]/16;
		}
	}

	for (i = 0; i < 16; i++){
		printf("%X", res[i]);
	}

	printf ("\n");
	
	return 0;
}

























;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值