C语言字符串最小值查找 - 算法实现及示例
C语言字符串最小值查找 - 算法实现及示例
问题描述:
从键盘上输入多个字符串(每个串不超过6个字符且没有空格),用'#'m#'作为输入结束的标记。从所输入的若干字符串中,找出一个最小的串,并输出该串。
算法要求:
最小串的查找通过调用编写的函数实现 void find(char *name , int n, int *p)
函数功能:
在包含n个字符串的二维字符数组name中,查找值最小的字符串,将其下标存入指针p所指内存单元。
代码示例:
#include <stdio.h>
#include <string.h>
void find(char *name , int n, int *p) {
int i, minIndex = 0;
for (i = 1; i < n; i++) {
if (strcmp(name + i * 6, name + minIndex * 6) < 0) {
minIndex = i;
}
}
*p = minIndex;
}
int main() {
char name[100][6];
int n = 0, i, minIndex;
char str[6];
while (1) {
scanf('%s', str);
if (strcmp(str, "#m#") == 0) {
break;
}
strcpy(name[n], str);
n++;
}
find(name, n, &minIndex);
printf('%s\n', name[minIndex * 6]);
return 0;
}
示例输入:
abcd efghi jklmn opqrs tuvw xyz #m#
示例输出: abcd
代码解释:
find函数利用strcmp函数比较字符串大小,找出最小字符串的下标并存入p指针所指内存单元。main函数通过循环输入字符串,并调用find函数查找最小字符串的下标。- 最后,输出最小字符串。
注意:
- 本示例代码假设输入的字符串长度不超过6个字符。
find函数使用了二维字符数组name来存储输入的字符串。#m#是输入结束的标记。
原文地址: https://www.cveoy.top/t/topic/ojJV 著作权归作者所有。请勿转载和采集!