用c语言来写从键盘上输入多个字符串每个串不超过6个字符且没有空格。用####作为串输入结束的标记。从所输入的若干字符中找出一个最小的串并输出该串要求小串的查找通过调用编写的函数实现void findchar nameint nintp在包含的n个字符中的二维字符数组name中查找值最小的宁符串将其下标存入指针p所指内存单元 输入一行入一个字符串输入多行输出输出个字符串单独占一行
#include <stdio.h> #include <string.h>
void find(char *name[], int n, int *p);
int main() { char str[7]; char *strings[100]; int i = 0; while (1) { scanf("%s", str); if (strcmp(str, "####") == 0) break; strings[i] = malloc(sizeof(char) * 7); // 动态分配存储空间 strcpy(strings[i], str); // 复制字符串 i++; } int index = -1; find(strings, i, &index); // 调用函数查找最小串 printf("%s\n", strings[index]); // 输出最小串 for (int j = 0; j < i; j++) { free(strings[j]); // 释放存储空间 } return 0; }
void find(char *name[], int n, int *p) { *p = 0; for (int i = 1; i < n; i++) { if (strcmp(name[i], name[*p]) < 0) { *p = i; // 找到值最小的字符串的下标 } }
原文地址: https://www.cveoy.top/t/topic/fDEk 著作权归作者所有。请勿转载和采集!