c语言编程实现:键盘输入一个全由非空格字符组成的字符串(长度小于20),找出其中最小的字符、最大的字符,并将最小的字符与原串首字符对调位置,最大的字符与原串尾字符对调位置。(例如:输入串为:OerJSAK,程序执行后,字符串为:AeKJSOr)
时间: 2024-02-23 14:02:48 浏览: 72
好的,下面是代码实现:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char str[20], min, max, temp;
int len, i;
printf("请输入一个长度小于20的字符串:");
scanf("%s", str);
len = strlen(str);
// 找出最小的字符和最大的字符
min = max = str[0];
for (i = 1; i < len; i++)
{
if (str[i] < min)
{
min = str[i];
}
if (str[i] > max)
{
max = str[i];
}
}
// 将最小的字符与原串首字符对调位置
for (i = 0; i < len; i++)
{
if (str[i] == min)
{
temp = str[0];
str[0] = str[i];
str[i] = temp;
break;
}
}
// 将最大的字符与原串尾字符对调位置
for (i = len - 1; i >= 0; i--)
{
if (str[i] == max)
{
temp = str[len - 1];
str[len - 1] = str[i];
str[i] = temp;
break;
}
}
printf("处理后的字符串为:%s\n", str);
return 0;
}
```
这里使用了 `scanf()` 函数来读取字符串,因为它可以方便地读取非空格字符。在找出最小的字符和最大的字符后,分别遍历字符串,找到对应的字符并进行位置交换。注意最大字符和最小字符可能会相同,需要特殊处理。
阅读全文