题7:英文加密解密系统主要功能为:在用户输入一段英文文章时,对文章中单词数及句子数进行准确统计,并根据用户的需要对此段文章加密,此后,同样也可以对加密过的文章解密。(1)从终端输入英文程序;(2)统计文章的句子数量程序;(3)统计文章的单词数量程序;(4)文章加密;(5)密文解密
好哥们儿,已回答,莫辜负😂
————————————————————————————————————————
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#define MAX_LEN 1000
// 统计句子数量
int count_sentences(char *str) {
int count = 0;
for (int i = 0; i < strlen(str); i++) {
if (str[i] == '.' || str[i] == '?' || str[i] == '!') {
count++;
}
}
return count;
}
// 统计单词数量
int count_words(char *str) {
int count = 0;
int flag = 0;
for (int i = 0; i < strlen(str); i++) {
if (isalpha(str[i])) {
if (flag == 0) {
count++;
flag = 1;
}
} else {
flag = 0;
}
}
return count;
}
// 加密函数
void encrypt(char *str, int key) {
for (int i = 0; i < strlen(str); i++) {
if (isalpha(str[i])) {
str[i] = (str[i] - 'a' + key) % 26 + 'a';
}
}
}
// 解密函数
void decrypt(char *str, int key) {
encrypt(str, 26 - key);
}
int main() {
char input[MAX_LEN];
int key;
// 从终端输入英文文章
printf("请输入一段英文文章:\n");
fgets(input, MAX_LEN, stdin);
// 统计句子数量
int num_sentences = count_sentences(input);
printf("句子数量:%d\n", num_sentences);
// 统计单词数量
int num_words = count_words(input);
printf("单词数量:%d\n", num_words);
// 加密文章
printf("请输入加密密钥:\n");
scanf("%d", &key);
encrypt(input, key);
printf("加密后的文章为:%s\n", input);
// 解密文章
decrypt(input, key);
printf("解密后的文章为:%s\n", input);
return 0;
}
(1)获取英文文章:
char* getArticle(){
char *input;
printf("Please input a article: ");
scanf("%s",input);
return input;
}
(2)统计句子数量程序:
int countSentence(char* article){
int sentence_count = 0;
for(int i=0;i<strlen(article);i++){
if(article[i] == '.'){
sentence_count++;
}
}
return sentence_count;
}
(3)统计单词数量程序:
int countWord(char* article){
int word_count = 0;
for(int i=0;i<strlen(article);i++){
if(article[i] == ' '){
word_count++;
}
}
return word_count;
}
(4)文章加密程序:
void encryption(char* article){
for(int i=0;i<strlen(article);i++){
article[i] += 1;
}
}
(5)密文解密程序:
void decryption(char* article){
for(int i=0;i<strlen(article);i++){
article[i] -= 1;
}
}