C语言键盘输入一个全由非空格字符组成的字符串(长度小于20),找出其中最小的字符、最大的字符,并将最小的字符与原串首字符对调位置,最大的字符与原串尾字符对调位置。
时间: 2024-03-05 22:55:11 浏览: 49
从键盘输入一串字符,分别统计其中的字母,数字字符和其他[文].pdf
好的,这是一个需要编写 C 代码的问题。我可以为您提供代码实现,但在此之前,请确认您已了解以下内容:
1. 如何在 C 语言中读取字符串输入。
2. 如何在 C 语言中比较字符大小。
3. 如何在 C 语言中交换字符位置。
如果您对以上内容还不熟悉,建议您先学习相关知识。如果您已经掌握相关知识,我可以为您提供以下代码实现:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 20
int main() {
char str[MAX_LEN + 1];
int len, i, min_idx = 0, max_idx = 0;
printf("Please enter a string (length < %d): ", MAX_LEN);
scanf("%s", str);
len = strlen(str);
for (i = 1; i < len; i++) {
if (str[i] < str[min_idx]) {
min_idx = i;
}
if (str[i] > str[max_idx]) {
max_idx = i;
}
}
// Swap the min char with the first char
char temp = str[min_idx];
str[min_idx] = str[0];
str[0] = temp;
// Swap the max char with the last char
temp = str[max_idx];
str[max_idx] = str[len - 1];
str[len - 1] = temp;
printf("Result: %s\n", str);
return 0;
}
```
此代码实现了以下功能:
1. 读取用户输入的字符串。
2. 找出其中最小的字符和最大的字符的下标。
3. 将最小的字符与原串首字符对调位置,将最大的字符与原串尾字符对调位置。
4. 输出处理后的字符串。
注意,此代码中没有对输入的字符串进行长度验证,如果用户输入的字符串长度超过了 MAX_LEN,可能会导致程序崩溃。您可以根据需要进行修改。
阅读全文