从键盘上输入多个字符串(每个串不超过6个字符且没有空格) ,用"#"作为串输入结束的标记。从所输入的若干字符串中,找出一个最小的串,并输出该串。要求最小串的查找通过调用编写的函数实现 查找(char *name[], int *n, int *p)在包含n个字符串的二维字符数组name中,查找值最小的字符串,将其下标存入指针p所指内存单元
时间: 2024-02-15 21:01:30 浏览: 47
好的,这里是另一种实现方式,需要注意的是,与之前的问题不同,这里的查找函数的参数是一个二维字符数组 name,函数的返回值是最小串的长度,函数使用指针 p 来返回最小串在数组中的下标。
```c
#include <stdio.h>
#include <string.h>
int find_min(char name[][7], int n, int *p) {
int min_len = strlen(name[0]);
*p = 0;
for (int i = 1; i < n; i++) {
int len = strlen(name[i]);
if (len < min_len) {
min_len = len;
*p = i;
}
}
return min_len;
}
int main() {
char name[100][7];
int n = 0;
while (1) {
fgets(name[n], 7, stdin);
if (name[n][0] == '#') {
break;
}
name[n][strlen(name[n])-1] = '\0';
n++;
}
int p;
int min_len = find_min(name, n, &p);
printf("最小串为:%s\n", name[p]);
return 0;
}
```
输入和输出与之前的代码相同,这里不再赘述。
阅读全文