C语言查找字符串数组中最小字符串 - 代码示例
思路:
- 定义一个字符数组二维数组name用于存储输入的字符串,同时定义一个计数器n记录输入的字符串个数;
- 通过循环输入字符串,直到输入'####'为止;
- 调用find函数查找最小的字符串,并将其下标存入指针p所指内存单元;
- 输出最小的字符串。
代码实现如下:
#include <stdio.h>
#include <string.h>
void find(char *name[], int n, int *p);
int main()
{
char name[6][31]; // 二维字符数组,最多存储6个字符串,每个字符串不超过30个字符
int n = 0; // 计数器,记录输入的字符串个数
char tmp[31]; // 临时存储输入的字符串
int p; // 存储最小字符串的下标
// 输入字符串
while (1)
{
scanf('%s', tmp);
if (strcmp(tmp, '####') == 0) // 输入'####'则结束输入
break;
strcpy(name[n], tmp); // 将输入的字符串复制到name数组中
n++; // 计数器加1
}
find(name, n, &p); // 查找最小的字符串
printf('%s\n', name[p]); // 输出最小的字符串
return 0;
}
void find(char *name[], int n, int *p)
{
int i;
*p = 0; // 先将第一个字符串的下标设为最小
for (i = 1; i < n; i++)
{
if (strcmp(name[i], name[*p]) < 0) // 如果第i个字符串比当前最小的字符串还小
*p = i; // 更新最小字符串的下标
}
}
原文地址: http://www.cveoy.top/t/topic/ojI9 著作权归作者所有。请勿转载和采集!