强化练习9:将不定长的字符串转化为一个16位的字符数组

来源:互联网 发布:centos7网络配置 编辑:程序博客网 时间:2024/05/23 01:49

题目:

将不定长的字符串转化为一个16位的字符数组。


程序如下:

#include <stdio.h>#include <string.h>#define SIZE 100#define LEN  16// 多位数自加成一位数int Add_Str (int Num){int sum = 0;while (Num){sum += Num % 10;Num /= 10;}if (sum < 10){return sum;}Add_Str (sum);}// 编码函数int encoded (char *str, char *password, int len){if (str == NULL){return;}int tmp[LEN] = {0};int group = len/LEN + 1;int i,j;for (i = 0; i < LEN; i++)// 分成16组{for (j = 0; j < group; j++){tmp[i] += str[j*LEN+i];// 第i组相加赋给tmp[i];}}for (i = 0; i < LEN; i++)      {  password[i] = Add_Str (tmp[i]) + '0';   //将每组字符加成一个 个位数    }  return 0;}/*将不定长的字符串转化为一个16位的字符数组*/int main(){char str[SIZE] = {0}; // 源码初始化char password[LEN + 1] = {0};// 编译过后的加密码初始化printf ("请输入密码:\n");fgets(str, sizeof(str)/sizeof(char), stdin);int len = strlen(str);// 长度算入了'\0'printf ("输入密码长度:%d\n", len);encoded (str, password, len);printf ("密码加密后:%s\n", password);return 0;}


阅读全文
1 0