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;
}

程序解析:

  1. find 函数:

    • 接受三个参数:
      • char *name[]:存储字符串的二维数组
      • int n:字符串数量
      • int *p:指向最小字符串下标的指针
    • 函数内部使用 strcmp 函数比较字符串,找到最小字符串的下标,并将其存储在指针 p 所指的内存单元中。
  2. main 函数:

    • 定义一个二维数组 name 来存储输入的字符串,每个字符串的最大长度为 6 个字符。
    • 定义一个变量 n 来记录字符串的数量。
    • 定义一个临时变量 str 来存储输入的字符串。
    • 循环输入字符串,直到遇到结束标记 '####'。
    • 将输入的字符串复制到二维数组 name 中。
    • 调用 find 函数找到最小的字符串。
    • 输出最小的字符串。

示例输入:

abcd
efgh
hijk
l
####

示例输出:

l

总结:

本示例演示了如何使用 C 语言编写函数来比较多个字符串并找出最小的字符串。该程序使用了 strcmp 函数进行字符串比较,并使用指针来传递最小字符串的下标。

C语言字符串比较:找出最小的字符串

原文地址: https://www.cveoy.top/t/topic/ojKV 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录