c语言输入一串字符,将字符大小写转换,输入不是字符,不做处理
时间: 2024-10-14 07:17:14 浏览: 8
在C语言中,你可以通过遍历用户输入的一串字符并利用ASCII码来实现大小写的转换。以下是一个简单的示例程序,它会读取用户输入,如果输入的是字母,就将其转换为相反的大小写:
```c
#include <stdio.h>
#include <ctype.h>
int main() {
char input[100];
int i;
printf("请输入一串字符:");
fgets(input, sizeof(input), stdin); // 读取一行字符,包括空格
for (i = 0; input[i] != '\n'; i++) { // 遍历输入字符串,跳过换行符
if (isalpha(input[i])) { // 判断是否为字母
if (islower(input[i])) { // 如果是小写字母
input[i] = toupper(input[i]); // 转换成大写
} else if (isupper(input[i])) { // 如果是大写字母
input[i] = tolower(input[i]); // 转换成小写
}
}
}
printf("转换后的字符为:%s\n", input);
return 0;
}
```
这个程序会忽略非字母字符,并对字母进行大小写转换。
相关问题
输入字符串大小写转换C语言
在C语言中,要实现字符串大小写转换,你可以使用标准库中的函数结合循环来逐个字符处理。这里有两种常见的方法:
1. 使用`toupper()`和`tolower()`函数:
这两个函数分别用于将小写字母转换为大写字母和大写字母转换为小写字母。注意,这些函数只对ASCII字符有效。
```c
#include <ctype.h>
#include <string.h>
void swap_case(char *str) {
int len = strlen(str);
for (int i = 0; i < len; i++) {
if (islower(str[i])) { // 如果是小写字母
str[i] = toupper(str[i]); // 转换为大写
} else if (isupper(str[i])) { // 如果是大写字母
str[i] = tolower(str[i]); // 转换为小写
}
}
}
```
C语言输入一串字符串,输出排好顺序的字符串不区分大小写
可以使用字符串库中的函数来实现字符串排序,如strcmp()和stricmp()。其中,strcmp()是区分大小写的字符串比较函数,而stricmp()是不区分大小写的字符串比较函数。因此,我们可以使用stricmp()函数来比较字符串,然后使用冒泡排序或快速排序等算法来对字符串进行排序。以下是一个示例代码:
#include <stdio.h>
#include <string.h>
void sortStrings(char arr[][100], int n)
{
char temp[100];
for (int i = 0; i < n-1; i++)
{
for (int j = i+1; j < n; j++)
{
if (stricmp(arr[i], arr[j]) > 0)
{
strcpy(temp, arr[i]);
strcpy(arr[i], arr[j]);
strcpy(arr[j], temp);
}
}
}
}
int main()
{
char str[100][100], temp[100];
int n;
printf("Enter number of strings: ");
scanf("%d", &n);
printf("Enter strings: \n");
for (int i = 0; i < n; i++)
{
scanf("%s", str[i]);
}
sortStrings(str, n);
printf("Sorted strings: \n");
for (int i = 0; i < n; i++)
{
printf("%s\n", str[i]);
}
return 0;
}
当然,这只是一个简单的示例代码,实际应用中可能需要考虑更多的情况,比如字符串长度、重复字符串等。