c语言 编写一个函数fun,从键盘上输入一个字符串,放在数组中,要求将字符串中的大写字母转换成小写字母,小写字母转换成大写字母,非字母字符不变
时间: 2024-03-22 14:39:56 浏览: 70
以下是使用 C 语言编写的函数 `fun`,它可以实现将输入的字符串中的大小写字母进行转换,并保留非字母字符不变:
```c
#include <stdio.h>
#include <ctype.h>
void fun() {
char s[100];
int i = 0;
// 从键盘上输入字符串
printf("请输入一个字符串:");
scanf("%s", s);
// 将字符串中的大小写字母进行转换
while (s[i] != '\0') {
if (islower(s[i])) {
s[i] = toupper(s[i]);
} else if (isupper(s[i])) {
s[i] = tolower(s[i]);
}
i++;
}
// 输出转换后的字符串
printf("转换后的字符串为:%s\n", s);
}
```
使用示例:
```
fun();
请输入一个字符串:Hello World!
转换后的字符串为:hELLO wORLD!
```
相关问题
用c语言编程编写函数fun,其功能是将字符数组中存放的字符串中下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。在main函数中定义字符数组,从键盘输入字符串为其赋值,然后调用函数fun,再在main函数中输出数组中的字符串。
以下是该程序的C语言代码实现:
```c
#include <stdio.h>
#include <ctype.h>
void fun(char str[])
{
int i;
for (i = 0; str[i] != '\0'; i++)
{
if (i % 2 != 0 && isalpha(str[i])) // 判断下标是否为奇数且该位置上是字母
{
str[i] = toupper(str[i]); // 转换为大写字母
}
}
}
int main()
{
char str[100];
printf("请输入字符串:");
scanf("%s", str);
fun(str);
printf("转换后的字符串为:%s\n", str);
return 0;
}
```
程序中先定义了一个函数 `fun`,该函数的作用是将字符数组中存放的字符串中下标为奇数位置上的字母转换为大写。在判断下标为奇数且该位置上是字母后,使用 `toupper` 函数将字符转换为大写字母。
在 `main` 函数中,先从键盘输入字符串并赋值给字符数组 `str`,然后调用函数 `fun` 进行转换,并最终输出转换后的字符串。
需要注意的是,本程序中字符串输入使用了 `scanf` 函数,该函数存在安全隐患,建议使用 `fgets` 函数代替。另外,字符数组大小最好根据实际情况加以限制,以避免越界访问。
用C语言写一个程序:编写函数fun,其功能是将字符数组中存放的字符串中下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。在main函数中定义字符数组,从键盘输入字符串为其赋值,然后调用函数fun,再在main函数中输出数组中的字符串。 例如:输入abbcc45ghNj,则应输出aBbCc45GhNj。
以下是该程序的 C 语言代码:
```c
#include <stdio.h>
#include <string.h>
#include <ctype.h>
void fun(char str[])
{
int len = strlen(str);
for (int i = 1; i < len; i += 2)
{
if (isalpha(str[i]))
{
str[i] = toupper(str[i]);
}
}
}
int main()
{
char str[100];
printf("请输入字符串:");
gets(str);
fun(str);
printf("转换后的字符串为:%s", str);
return 0;
}
```
程序中,函数 `fun` 接收一个字符数组 `str` 作为参数,然后遍历该数组中下标为奇数位置的字符。如果该字符是字母,则将其转换为大写。主函数中,首先从键盘输入一个字符串并存入字符数组 `str` 中,然后调用函数 `fun` 对其进行转换,最后输出转换后的字符串。
阅读全文