编写一个函数char my_toupper(char ch),其功能是判断输入字符是否为小写字母,若是,返回其对应的大写字母,否则返回原字符。然后在main函数中输入一个字符,调用该函数得到其大写字母
时间: 2024-11-06 07:20:56 浏览: 40
首先,我们可以编写一个名为`my_toupper`的函数,它接受一个`char`类型的参数并检查是否为小写字母。如果是,就将其转换为大写;如果不是,则直接返回原始字符。在C语言中,这个过程可以使用ASCII码表来完成,因为大写字母的ASCII值比相应的小写字母大32。
```c
#include <stdio.h>
#include <ctype.h> // 包含处理字符大小写的头文件
// 函数 my_toupper,将小写字母转为大写,其他字符不变
char my_toupper(char ch) {
if (islower(ch)) { // 判断字符是否为小写字母
return ch + 32; // ASCII码上移32位就是大写字母
}
return ch;
}
int main() {
char input;
printf("请输入一个小写字母或直接回车测试: ");
scanf("%c", &input);
// 调用my_toupper函数并将结果打印
printf("输入字符的大写形式: %c\n", my_toupper(input));
return 0;
}
```
在这个程序中,用户可以在运行时输入一个小写字母,或者直接按回车测试默认字符。如果输入的是小写字母,它会被转换为大写显示;否则,会保持原样。
相关问题
C语言编程实现:编写函数,实现如果用户输入的字母为小写字母,则转换为大写字母,如果输入的是大写字母,则转换成小写字母,其他字符不变。要求:函数的实参为指针变量
在C语言中,你可以通过函数指针和`ctype.h`库提供的函数来实现这个功能。这里是一个简单的示例,定义了一个接受字符指针并返回转换后的字符的函数:
```c
#include <stdio.h>
#include <ctype.h>
// 定义一个函数,接收指向char的指针,并转换字母大小写
int convert_case(char *ch) {
if (islower(*ch)) { // 如果是小写字母
return toupper(*ch); // 转换为大写
} else if (isupper(*ch)) { // 如果是大写字母
return tolower(*ch); // 转换为小写
} else { // 其他非字母字符保持不变
return *ch;
}
}
int main() {
char input[100];
printf("请输入一个字符:");
fgets(input, sizeof(input), stdin);
// 检查输入是否结束
if (input[strlen(input)-1] == '\n') {
input[strlen(input)-1] = '\0'; // 去除换行符
}
for (int i = 0; input[i]; ++i) {
input[i] = convert_case(&input[i]); // 逐个字符处理
}
printf("转换后的字符:%s\n", input);
return 0;
}
```
在这个程序中,`convert_case`函数会检查传入的字符,如果是小写字母则调用`toupper`,如果是大写字母则调用`tolower`,如果不是字母则直接返回原字符。然后在主函数中读取用户的输入,并遍历每个字符应用该函数。
编写chang函数,其函数头部为:void chang(char *ch),功能是修改参数(指针)指向的内存地址中所存放的字母,使原字母进行大小写转换。主函数输入一个字符数据,该数据不为字母时判别出错,该数据为字母时调用该函数实现大小写转换
以下是针对你的问题的 C 语言代码实现:
```c
#include <stdio.h>
#include <ctype.h>
void chang(char *ch) {
if (islower(*ch)) { // 如果是小写字母,转换为大写字母
*ch = toupper(*ch);
} else if (isupper(*ch)) { // 如果是大写字母,转换为小写字母
*ch = tolower(*ch);
}
}
int main() {
char ch;
printf("请输入一个字母:");
scanf("%c", &ch);
if (!isalpha(ch)) { // 判断是否为字母
printf("输入错误!\n");
return 0;
}
chang(&ch); // 调用 chang 函数进行大小写转换
printf("转换后的字母为:%c\n", ch);
return 0;
}
```
在这个程序中,我们首先引入了 `ctype.h` 库,其中包含了判断字符类型的函数 `islower` 和 `isupper`,以及转换字符大小写的函数 `tolower` 和 `toupper`。`chang` 函数接受一个指向字符的指针 `ch`,根据 `*ch` 的值进行大小写转换。在 `main` 函数中,我们先读入一个字符 `ch`,然后判断它是否为字母。如果不是,就输出错误信息;如果是,就调用 `chang` 函数进行大小写转换,并输出转换后的结果。需要注意的是,在调用 `chang` 函数时,我们需要传入 `&ch`,即字符变量 `ch` 的地址,而不是 `ch` 的值。这是因为我们需要修改 `ch` 所指向的内存地址中所存放的字母,而不仅仅是修改 `ch` 变量本身的值。
阅读全文