【id:79】【14分】B. 实验7-3-4 字符串替换 (15 分) 题目描述 本题要求编写程序,将给定字符串中的大写英文字母按以下对应规则替换: 原字母 对应字母 A Z B Y C X D W … … X C Y B Z A 输入 输入在一行中给出一个不超过80个字符、并以回车结束的字符串。 输出 输出在一行中给出替换完成后的字符串.c语言编写代码,要求用数组
时间: 2024-02-20 22:57:38 浏览: 163
好的,下面是 C 语言的代码实现,使用了数组:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char s[81]; // 定义输入字符串
fgets(s, 81, stdin); // 读入字符串,包括回车符
s[strlen(s) - 1] = '\0'; // 去除回车符
char new_s[81]; // 定义新字符串
int len = strlen(s); // 计算字符串长度
for (int i = 0; i < len; i++) {
if ('A' <= s[i] && s[i] <= 'Z') { // 如果是大写字母
new_s[i] = 'A' + 'Z' - s[i]; // 按照规则替换
} else {
new_s[i] = s[i]; // 非大写字母直接加入新字符串
}
}
new_s[len] = '\0'; // 新字符串以 '\0' 结尾
printf("%s", new_s); // 输出新字符串
return 0;
}
```
你可以将上述代码复制到你的 C 语言编辑器中,保存为 `.c` 文件,编译并运行即可。
相关问题
这道c语言题目是让你编写一个字符串处理函数,其功能可以将字符串中删除所有的大写字母或小写字母(如果你的学号为奇数,则删除大写字母,否则删除小写字母)。然后编写一个主函数调用,对于一个从键盘输入的一行字符,经过该函数处理后输出。
好的,这个问题的解决方案如下:
```c
#include <stdio.h>
#include <string.h>
#include <ctype.h>
void process_string(char *str) {
int len = strlen(str);
int i;
int is_odd = 0;
// 获取学号末尾数字
int id = 12345678; // 假设你的学号是12345678
int last_digit = id % 10;
if (last_digit % 2 == 1) {
is_odd = 1;
}
// 删除大写或小写字母
if (is_odd) {
for (i = 0; i < len; i++) {
if (isupper(str[i])) {
str[i] = ' ';
}
}
} else {
for (i = 0; i < len; i++) {
if (islower(str[i])) {
str[i] = ' ';
}
}
}
}
int main() {
char str[100];
printf("请输入一个字符串:\n");
fgets(str, 100, stdin);
process_string(str);
printf("处理后的字符串为:%s", str);
return 0;
}
```
这个程序中,我们首先定义了一个名为 `process_string` 的函数,该函数接收一个指向字符串的指针作为参数,然后根据学号末尾数字的奇偶性来删除该字符串中的大写或小写字母。具体实现是通过循环遍历字符串中的每个字符来实现的,如果该字符是大写或小写字母,则将其替换为空格。值得注意的是,我们使用了 `isupper` 和 `islower` 函数来判断一个字符是否为大写或小写字母。
在 `main` 函数中,我们首先使用 `fgets` 函数从键盘读取一个字符串,然后调用 `process_string` 函数来处理该字符串,并最终输出处理后的结果。
阅读全文