请用C语言编写程序给输入的字符串加密,每个字母加密后在其之后的四个字母,大小写字母都包括
时间: 2023-07-15 18:11:40 浏览: 46
以下是使用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
#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语言编写程序统计一个字符串中26个大小写字母出现的次数。
以下是使用 C 语言编写的程序,用于统计一个字符串中 26 个大小写字母出现的次数。
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
int count[26] = {0};
int len, i;
printf("请输入一个字符串:");
gets(str);
len = strlen(str);
for(i=0; i<len; i++) {
if(str[i] >= 'a' && str[i] <= 'z') {
count[str[i] - 'a']++;
}
else if(str[i] >= 'A' && str[i] <= 'Z') {
count[str[i] - 'A']++;
}
}
printf("字母出现次数如下:\n");
for(i=0; i<26; i++) {
printf("%c:%d\n", 'a'+i, count[i]);
}
return 0;
}
```
该程序首先定义了一个字符串数组 `str`,用于存储用户输入的字符串。然后定义了一个长度为 26 的整型数组 `count`,用于存储每个字母出现的次数。接着使用 `gets()` 函数获取用户输入的字符串,并使用 `strlen()` 函数获取字符串的长度。
接下来使用一个循环遍历字符串中的每个字符,如果是小写字母,则将对应位置的计数器加 1;如果是大写字母,则将对应位置的计数器加 1。最后使用一个循环遍历整型数组,输出每个字母出现的次数。
需要注意的是,该程序使用了 `gets()` 函数获取用户输入的字符串,这个函数会读取一整行字符串,包括空格和其他特殊字符。这个函数有安全性问题,可能会导致缓冲区溢出,因此在实际应用中应该使用其他安全的函数来获取用户输入的字符串,比如 `fgets()` 函数。