C语言 从键盘上输入多个字符串 (每个串不超过6个字符且没有空格),用”####”作为串输入结束的标记。从所输入的若干字符串中,找出一个最小的串,并输出该串。要求最小串的查找通过调用编写的函数实现 void find(char *name , int n, int *p) //在包含n个字符串的二维字符数组name中,查找值最小的字符串,将其下标存入指针p所指内存单元 输入行输入一个字符串,输入多行 输出输出一个字符串,单独占一行。
时间: 2024-02-15 20:01:37 浏览: 165
C语言字符/字符串相关函数收藏大全
以下是C语言的实现:
```c
#include <stdio.h>
#include <string.h>
void find(char *name[], int n, int *p);
int main() {
char str[100][7]; // 定义二维字符数组
int n = 0;
while (1) {
scanf("%s", str[n]); // 从键盘输入字符串
if (strcmp(str[n], "####") == 0) {
break; // 输入”####”结束循环
}
n++;
}
int index;
find(str, n, &index); // 调用查找函数
printf("%s\n", str[index]); // 输出最小串
return 0;
}
void find(char *name[], int n, int *p) {
int minIndex = 0;
for (int i = 1; i < n; i++) {
if (strcmp(name[i], name[minIndex]) < 0) {
minIndex = i; // 找到最小串的下标
}
}
*p = minIndex; // 将最小串的下标存入指针p所指内存单元
}
```
该程序中,我们首先定义了一个二维字符数组`str`,用于存储输入的多个字符串。然后通过一个`while`循环,不断从键盘输入字符串,直到输入了”####”为止。在输入的过程中,我们可以使用`strcmp`函数判断当前输入的字符串是否为结束标记。当输入结束后,我们调用`find`函数来查找最小的字符串,最后输出该字符串即可。
阅读全文