您的位置:首页 > 新闻 > 会展 > 网站制作毕业设计论文_图图网_快速排名怎么做_湘潭seo公司

网站制作毕业设计论文_图图网_快速排名怎么做_湘潭seo公司

2025/1/5 7:58:00 来源:https://blog.csdn.net/2402_86955314/article/details/144807429  浏览:    关键词:网站制作毕业设计论文_图图网_快速排名怎么做_湘潭seo公司
网站制作毕业设计论文_图图网_快速排名怎么做_湘潭seo公司

1.题目要求

编写加密程序,将用户输入的一个英文句子加密为加密字符串,然后输出加密字符串。假设句子长度不超过50个字符。根据给定的句子加密函数原型SentenceEncoding,编写函数SentenceEncoding调用字符加密函数CharEncoding完成句子加密。然后,编写主程序提示用户输入英文句子,然后调用函数SentenceEncoding对句子加密,最后输出加密后的句子。字符加密规则为大写字母和小写字母均加密为其补码, 我们定义ASCII码值相加为’A’+’Z’即155的两个大写字母互为补码,ASCII码值相加为’a’+’z’即219的两个小写字母互为补码。空格用@代替,句号以#代替,其它字符用句点代替。
函数原型:
void SentenceEncoding(char *soure,char *code);
功能:对待加密字符串source加密后保存加密字符串到code.
参数:char *soure,指向待加密句子的字符串指针;char *code 指向加密字符串的字符串指针;
输入提示信息:"Input source sentence:"
输出提示信息:"Encoded sentence:"
输出加密字符串后,输出一个回车。运行实例1:
Input source sentence:You are a student.
Encoded sentence:Blf@ziv@z@hgfwvmg#

2.代码实现 

#include<stdio.h>
#include<string.h>// 字符加密函数
char CharEncoding(char ch)
{char encode = 0;if (ch >= 'A' && ch <= 'Z')     {encode = ('A' + 'Z') - ch;     }else if (ch >= 'a' && ch <= 'z')  {encode = 'a' + 'z' - ch;    }else{switch (ch)   {case ' ': encode = '@';     break;                  case '.': encode = '#';   break;default: encode = '.';    break;}}return encode;
}// 句子加密函数
void SentenceEncoding(char *source, char *code)
{while (*source!= '\0'){*code = CharEncoding(*source);source++;code++;}*code = '\0'; // 给加密后的字符串添加结束符
}int main()
{// 输入提示信息printf("Input source sentence:");char ch[80];// 使用 fgets 避免缓冲区溢出fgets(ch, sizeof(ch), stdin);ch[strcspn(ch, "\n")] = '\0';char code[80];// 输出提示信息printf("Encoded sentence:");SentenceEncoding(ch, code);puts(code);printf("\n");return 0;
}

3.代码详解

CharEncoding 函数:

  • 如果 ch 是大写字母(A 到 Z),通过 encode = ('A' + 'Z') - ch 计算其补码。
  • 如果 ch 是小写字母(a 到 z),通过 encode = 'a' + 'z' - ch 计算其补码。

SentenceEncoding 函数:

  • 使用 while (*source!= '\0') 循环,只要 source 指针未指向字符串结尾,就调用 CharEncoding 函数对当前字符进行加密,并将结果存储在 code 指针所指向的位置。
  • 同时,将 source 指针和 code 指针向后移动一位,继续处理下一个字符。
  • 最后添加字符串结束符 '\0' 到加密后的字符串末尾。

处理多余的换行符:

  • strcspn 是 C 标准库中的一个函数,其函数原型为 size_t strcspn(const char *str1, const char *str2);
    • 它的作用是计算 str1 中从起始位置开始,连续的字符都不在 str2 中出现的字符的长度。
    • 当 str2 是 "\n" 时,strcspn(ch, "\n") 会计算 ch 中从起始位置开始,连续的字符中不包含换行符 '\n' 的字符的长度。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com