用C语言.从键盘输入字符串(无空格、制表符等,长度小于20), 对其中的英文字母进行大小写转换并输出;若输入非英文字母,则输出error
时间: 2023-06-15 13:06:35 浏览: 107
可以使用ctype.h库中的函数来判断输入的字符是否为英文字母,并使用条件语句来进行大小写转换。
以下是示例代码:
```c
#include <stdio.h>
#include <ctype.h>
int main() {
char str[20];
printf("请输入字符串:");
scanf("%s", str);
for (int i = 0; str[i] != '\0'; i++) {
if (isalpha(str[i])) { // 如果是英文字母
if (islower(str[i])) { // 如果是小写字母
putchar(toupper(str[i])); // 转换为大写字母并输出
} else { // 否则是大写字母
putchar(tolower(str[i])); // 转换为小写字母并输出
}
} else { // 如果不是英文字母
printf("error");
return 0;
}
}
return 0;
}
```
注意,上面的代码中使用`isalpha()`函数判断字符是否为英文字母,它只能判断ASCII码表中的字母,如果输入的是其他语言的字母或符号,可能会出现错误。
相关问题
用C语言实现 从键盘输入一个字符串,将其中的大写子母变小写子母,小写字母变大写字母
在C语言中,你可以通过ASCII码来实现字符大小写的互换。这里是一个简单的程序示例,它会读取用户输入的一行字符串并转换其字母的大小写:
```c
#include <stdio.h>
#include <ctype.h> // 需要包含ctype.h头文件来获取isupper和tolower宏
void swap_case(char *str) {
while (*str != '\0') { // 遍历字符串直到空字符
if (isupper(*str)) { // 如果是大写字母
*str = tolower(*str); // 转换成小写
} else if (islower(*str)) { // 如果是小写字母
*str = toupper(*str); // 转换成大写
}
str++; // 移动到下一个字符
}
}
int main() {
char input[100]; // 存储输入的字符串
printf("请输入一个字符串: ");
fgets(input, sizeof(input), stdin); // 从键盘读入一行字符串
input[strcspn(input, "\n")] = '\0'; // 去除fgets添加的换行符
// 调用swap_case函数处理字符串
swap_case(input);
printf("转换后的字符串: %s\n", input);
return 0;
}
```
在这个程序中,`swap_case` 函数遍历输入的字符串,如果遇到大写字母就用 `tolower` 转换为小写,如果遇到小写字母则用 `toupper` 转换为大写。
写一个C语言程序,题目是:输入任意字符串(长度小于80),统计其中小写英文字母的个数
当然可以。下面是一个简单的C语言程序,用于统计用户输入的字符串中小写字母的个数:
```c
#include <stdio.h>
#include <ctype.h>
int main() {
char str[80];
int lower_case_count = 0;
printf("请输入一个字符串(长度小于80): ");
fgets(str, sizeof(str), stdin); // 防止换行符
str[strlen(str) - 1] = '\0'; // 去除fgets留下的换行符
for(int i = 0; str[i] != '\0'; i++) { // 遍历字符串
if(islower(str[i])) { // 判断字符是否为小写字母
lower_case_count++; // 累加计数
}
}
printf("字符串中小写英文字母的个数: %d\n", lower_case_count);
return 0;
}
```
在这个程序中,我们首先定义了一个`str`数组来存储输入的字符串,并初始化一个变量`lower_case_count`来记录小写字母的数量。然后通过`fgets`获取用户输入并去除末尾的换行符。接着遍历字符串,使用`islower`函数检查每个字符是否为小写字母,如果是就增加计数。最后输出结果。
阅读全文