用c语言写关于输入一个字符串,将该字符串译成密码输出。密码规律:对大写英文字母用原字母后面的第4个字母代替原字母,若遇到大写字母‘W’、‘X’、‘Y’、‘Z’则分别用‘A’、‘B’、‘C’、‘D’代替,其余字符不变。
时间: 2023-09-25 14:10:26 浏览: 60
```c
#include <stdio.h>
#include <string.h>
int main()
{
char str[100];
printf("请输入一个字符串:");
fgets(str, 100, stdin); // 使用fgets获取输入的字符串
int len = strlen(str);
for (int i = 0; i < len; i++)
{
if (str[i] >= 'A' && str[i] <= 'Z') // 判断是否为大写字母
{
if (str[i] >= 'W' && str[i] <= 'Z') // 特判W、X、Y、Z
{
putchar(str[i] - 22);
}
else
{
putchar(str[i] + 4);
}
}
else // 其他字符不变
{
putchar(str[i]);
}
}
return 0;
}
```
相关问题
用c语言做一个程序,输入一个字符串,将这个字符串中的大写英文字母除去,输出剩余的字符组成的字符串。(用指针做)输入形式:输入一个字符串,可能包含有大写英文字母。输出形式:输出除去大写英文字母的剩余字符串。
下面是用指针实现的 C 语言程序代码:
```c
#include <stdio.h>
void remove_uppercase(char *str) {
char *p = str;
while (*p != '\0') {
if (*p >= 'A' && *p <= 'Z') {
char *q = p;
while (*q != '\0') {
*q = *(q + 1);
q++;
}
} else {
p++;
}
}
}
int main() {
char str[100];
printf("请输入一个字符串:");
scanf("%s", str);
remove_uppercase(str);
printf("除去大写字母后的字符串是:%s\n", str);
return 0;
}
```
程序中的 `remove_uppercase` 函数用于去除输入字符串中的大写英文字母。它采用两个指针 `p` 和 `q`,其中 `p` 用于遍历字符串中的每个字符,如果当前字符是大写英文字母,就用 `q` 指针从当前位置开始,将后面的字符依次往前移动一个位置,最终将这个字符删除。如果当前字符不是大写英文字母,就继续遍历下一个字符。
输入一个字符串和数字m,编写程序,将输入的字符串译成密码,译码规律是:用原来的字母后面 m个字母代替原来的字母。用C语言表示,运行时间短
为了创建一个C++程序,我们将使用`std::string`来处理输入的字符串,并使用模运算来确保字母循环替换。以下是一个简单的示例,用于将字符串中的每个字符按照给定的偏移量进行循环替换:
```cpp
#include <iostream>
#include <string>
std::string encrypt(const std::string &input, int shift) {
std::string result;
for (char c : input) {
if (isalpha(c)) { // 检查是否为字母
char new_char = islower(c) ? static_cast<char>((c + shift - 'a') % 26 + 'a') : static_cast<char>((c + shift - 'A') % 26 + 'A');
result += new_char;
} else {
result += c; // 非字母字符保持不变
}
}
return result;
}
int main() {
std::string input;
int m;
std::cout << "Enter a string: ";
getline(std::cin, input);
std::cout << "Enter the number m: ";
std::cin >> m;
std::string encrypted = encrypt(input, m);
std::cout << "Encrypted String: " << encrypted << std::endl;
return 0;
}
```
在这个程序中,`encrypt()` 函数接收输入的字符串和偏移量 `shift`。对于输入的每个字符,如果是小写字母,我们就根据ASCII码计算新的字母(取模操作确保在'a'到'z'范围内),如果是大写字母,则对应地处理'A'到'Z'范围。非字母字符直接添加到结果字符串。
运行这个程序时,请确保输入的是有效的英文字符和整数 `m`,因为此代码没有做错误检查。
阅读全文