C语言 循环输入任意字符,直到输入问号‘?’循环停止,对输入的字符进行大小写转换,如果是大写字母,转为小写字母,是小写字母转换位大写 提示:在循环体内,输入一个,判断一个,转换一个,输出一个
时间: 2023-05-30 21:02:40 浏览: 107
```c
#include <stdio.h>
int main() {
char c; // 存储输入的字符
while (1) { // 循环输入
printf("请输入一个字符:");
scanf("%c", &c);
if (c == '?') { // 判断是否输入问号
break; // 是,循环停止
}
if (c >= 'A' && c <= 'Z') { // 判断是否为大写字母
c += 32; // 大写字母转为小写字母
} else if (c >= 'a' && c <= 'z') { // 判断是否为小写字母
c -= 32; // 小写字母转为大写字母
}
printf("转换后的字符为:%c\n", c); // 输出转换后的字符
getchar(); // 消耗掉输入缓冲区中的换行符
}
return 0;
}
```
相关问题
c语言 输入几行字符串 将字母的大小写转换一下,非字母字符原样输出。
可以使用C语言中的字符函数isalpha()和tolower()与toupper()。
isalpha()函数用于判断是否为字母,tolower()和toupper()函数用于将字符转换为小写或大写。
下面是示例代码:
```c
#include <stdio.h>
#include <ctype.h>
int main()
{
char str[100];
printf("Enter a string: ");
gets(str); // 输入字符串
int i = 0;
while(str[i] != '\0')
{
if(isalpha(str[i])) // 判断是否为字母
{
if(islower(str[i])) // 如果是小写字母
str[i] = toupper(str[i]); // 转换为大写字母
else // 如果是大写字母
str[i] = tolower(str[i]); // 转换为小写字母
}
i++;
}
printf("Converted string: %s", str); // 输出转换后的字符串
return 0;
}
```
注意:gets()函数存在安全漏洞,建议使用fgets()函数代替。
c语言用循环结构实现输入一串字符进行字母大写变小写,小写变大写其余字符不变
下面是C语言的代码实现:
```c
#include <stdio.h>
int main() {
char str[100];
int i;
printf("请输入一串字符:");
fgets(str, 100, stdin);
for (i = 0; str[i] != '\0'; i++) {
if (str[i] >= 'A' && str[i] <= 'Z') { // 大写字母转小写字母
str[i] += 32;
} else if (str[i] >= 'a' && str[i] <= 'z') { // 小写字母转大写字母
str[i] -= 32;
} else {
// 其他字符不变
}
}
printf("转换后的字符串为:%s\n", str);
return 0;
}
```
代码解释:
1. 首先定义一个字符数组 `str`,用于存储输入的字符串。
2. 使用 `fgets()` 函数从标准输入中获取一行字符串,最多读取100个字符。
3. 然后使用 `for` 循环遍历字符串中的每个字符。
4. 如果当前字符是大写字母(ASCII码范围在65到90之间),则将其转换为小写字母,即加上32。
5. 如果当前字符是小写字母(ASCII码范围在97到122之间),则将其转换为大写字母,即减去32。
6. 如果当前字符不是字母,则不做处理。
7. 最后输出转换后的字符串。