请用C语言编写程序给输入的字符串加密,每个字母加密后在其之后的四个字母
时间: 2023-07-15 20:11:44 浏览: 58
以下是一个简单的实现,假设输入的字符串中只包含小写字母:
```c
#include <stdio.h>
#include <string.h>
#define SHIFT 4
void encrypt(char *str);
int main() {
char str[100];
printf("请输入要加密的字符串:");
fgets(str, 100, stdin);
encrypt(str);
printf("加密后的字符串:%s", str);
return 0;
}
void encrypt(char *str) {
int len = strlen(str);
for (int i = 0; i < len; i++) {
if (str[i] >= 'a' && str[i] <= 'z') {
str[i] = ((str[i] - 'a') + SHIFT) % 26 + 'a';
}
}
}
```
运行程序后,输入要加密的字符串,程序会输出加密后的结果。例如,输入字符串 "hello world",程序输出 "lipps asvph"。
相关问题
请用C语言编写程序给输入的字符串加密,每个字母加密后在其之后的四个字母,大小写字母都包括
以下是使用C语言编写的字符串加密程序:
```c
#include <stdio.h>
#include <ctype.h>
int main() {
char str[1000];
int i;
printf("Enter a string: ");
fgets(str, sizeof(str), stdin);
for (i = 0; str[i] != '\0'; i++) {
if (isalpha(str[i])) {
if (isupper(str[i])) {
str[i] = ((str[i] - 'A') + 4) % 26 + 'A';
} else {
str[i] = ((str[i] - 'a') + 4) % 26 + 'a';
}
}
}
printf("Encrypted string: %s", str);
return 0;
}
```
该程序首先从用户处获取一个字符串,然后对字符串中的每个字母进行加密。如果字母是大写字母,则将其转换为整数值,加上4,再将结果转换回字符。如果字母是小写字母,则使用相同的算法进行加密。最后,程序打印加密后的字符串。
编写一个c语言程序要求统计输入字符串中各个字母使用频率
好的,这是一个简单的统计字母频率的C语言程序:
```c
#include <stdio.h>
#include <ctype.h>
#define MAX_LEN 100
int main() {
char str[MAX_LEN];
int freq[26] = {0}; // 初始化频率数组为0
printf("请输入字符串:");
fgets(str, MAX_LEN, stdin); // 从标准输入读取字符串
for (int i = 0; str[i] != '\0'; i++) {
if (isalpha(str[i])) { // 判断字符是否为字母
freq[tolower(str[i]) - 'a']++; // 统计字母频率
}
}
printf("字母频率如下:\n");
for (int i = 0; i < 26; i++) {
printf("%c: %d\n", 'a' + i, freq[i]); // 输出字母频率
}
return 0;
}
```
程序中使用了一个大小为26的整型数组 `freq` 来统计每个字母的频率,数组下标为字母在字母表中的位置,即 `'a'` 对应下标0,`'b'` 对应下标1,以此类推。程序通过循环遍历输入的字符串,如果当前字符是字母,则将对应的频率数组元素加1。最后输出每个字母的频率。