用c语言实现:编程实现:键盘输入一个全由字母组成的字符串(长度小于20),找出其中最小的字符、最大的字符,并将最小的字符与原串首字符对调位置,最大的字符与原串尾字符对调位置。(例如:输入串为:OerJSAK,程序执行后,字符串为:AeKJSOr) 注意:由于gcc编译器不能使用gets函数,可以使用scanf()函数。
时间: 2023-07-16 22:16:44 浏览: 107
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[20];
printf("请输入一个全由字母组成的字符串(长度小于20):");
scanf("%s", str);
int len = strlen(str);
char min_c = str[0], max_c = str[0];
int min_idx = 0, max_idx = 0;
for (int i = 1; i < len; i++) {
if (str[i] < min_c) {
min_c = str[i];
min_idx = i;
}
if (str[i] > max_c) {
max_c = str[i];
max_idx = i;
}
}
char temp = str[0];
str[0] = min_c;
str[min_idx] = temp;
temp = str[len-1];
str[len-1] = max_c;
str[max_idx] = temp;
printf("处理后的字符串为:%s", str);
return 0;
}
```
相关问题
c语言编写:输入一个长度小于80的字符串,统计其中字母的个数
好的,以下是使用C语言编写的程序,实现统计输入字符串中字母的个数:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char str[80];
int i, count = 0;
printf("请输入一个字符串(长度小于80):");
fgets(str, 80, stdin);
for (i = 0; i < strlen(str); i++) {
if ((str[i] >= 'a' && str[i] <= 'z') || (str[i] >= 'A' && str[i] <= 'Z')) {
count++;
}
}
printf("该字符串中字母的个数为:%d\n", count);
return 0;
}
```
程序首先使用`fgets()`函数从标准输入中读取一个字符串,存储在字符数组`str`中。接着,使用一个循环遍历字符串中的每一个字符,如果该字符是字母(即ASCII码在65~90或97~122之间),就将计数器加1。最后输出字母的个数。
需要注意的是,使用`fgets()`函数可以避免输入字符串长度超过80个字符的问题,而使用`gets()`函数可能会导致缓冲区溢出。此外,为了判断一个字符是否是字母,程序使用了ASCII码值的比较。
C语言实现,从键盘输入一个字符串,找出其中ASCII码值最小的字符,并输出该字符
可以使用C语言的字符串操作函数和循环来实现这个功能。具体步骤如下:
1. 从键盘读入一个字符串,并使用strlen函数获取它的长度。
2. 定义一个变量min记录最小的ASCII码值,初始值为127(ASCII码表中最大的可打印字符的值)。
3. 使用循环遍历字符串中的每个字符,比较它们的ASCII码值,若比当前记录的最小值还小,则更新min的值。
4. 找到最小的ASCII码值之后,再次遍历字符串,找到对应的字符,并输出。
下面是代码示例:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
int len, i, min = 127;
printf("请输入一个字符串:");
scanf("%s", str);
len = strlen(str);
for (i = 0; i < len; i++) {
if (str[i] < min) {
min = str[i];
}
}
printf("ASCII码值最小的字符是:%c\n", min);
return 0;
}
```