C语言字符串比较:找出最小的字符串
C语言字符串比较:找出最小的字符串
本示例演示如何使用C语言编写函数来比较多个字符串并找出最小的字符串。程序接收用户输入的多个字符串,并使用'####'作为结束标记,然后找到最小的字符串并输出。
程序代码:
#include <stdio.h>
#include <string.h>
void find(char *name[], int n, int *p) {
*p = 0;
for (int i = 1; i < n; i++) {
if (strcmp(name[*p], name[i]) > 0) {
*p = i;
}
}
}
int main() {
char name[100][7]; // 存储字符串的二维数组,最大长度为6
int n = 0; // 字符串数量
char str[7]; // 临时存储输入字符串
// 输入字符串并存储到数组中
while (1) {
scanf("%s", str);
if (strcmp(str, "####") == 0) {
break;
}
strcpy(name[n], str);
n++;
}
// 找到最小的字符串
int min_index;
find(name, n, &min_index);
// 输出最小的字符串
printf("%s\n", name[min_index]);
return 0;
}
程序解析:
-
find函数:- 接受三个参数:
char *name[]:存储字符串的二维数组int n:字符串数量int *p:指向最小字符串下标的指针
- 函数内部使用
strcmp函数比较字符串,找到最小字符串的下标,并将其存储在指针p所指的内存单元中。
- 接受三个参数:
-
main函数:- 定义一个二维数组
name来存储输入的字符串,每个字符串的最大长度为 6 个字符。 - 定义一个变量
n来记录字符串的数量。 - 定义一个临时变量
str来存储输入的字符串。 - 循环输入字符串,直到遇到结束标记 '####'。
- 将输入的字符串复制到二维数组
name中。 - 调用
find函数找到最小的字符串。 - 输出最小的字符串。
- 定义一个二维数组
示例输入:
abcd
efgh
hijk
l
####
示例输出:
l
总结:
本示例演示了如何使用 C 语言编写函数来比较多个字符串并找出最小的字符串。该程序使用了 strcmp 函数进行字符串比较,并使用指针来传递最小字符串的下标。
原文地址: https://www.cveoy.top/t/topic/ojKV 著作权归作者所有。请勿转载和采集!