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

代码解释:

  1. find 函数利用 strcmp 函数比较字符串大小,找出最小字符串的下标并存入 p 指针所指内存单元。
  2. main 函数通过循环输入字符串,并调用 find 函数查找最小字符串的下标。
  3. 最后,输出最小字符串。

注意:

  • 本示例代码假设输入的字符串长度不超过6个字符。
  • find 函数使用了二维字符数组 name 来存储输入的字符串。
  • #m# 是输入结束的标记。
C语言字符串最小值查找 - 算法实现及示例

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

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