You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C语言实现字符串最长与最短单词查找的方法及代码

如何编程查找字符串中的最短单词与最长单词

以下是基于C语言的实现,包含变量说明和完整代码:

变量作用说明

  • keep:遍历字符串时,记录当前正在统计的单词长度
  • position_max、position_min:分别存储最长、最短单词的末尾字符下标
  • max、min:逐词比对过程中,暂存当前找到的最长、最短单词长度
  • lenght:存储待处理字符串的总长度

C语言实现代码

#include <limits.h>
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <stdlib.h>

int main(void)
{
    char *stringa = "alex keep all money";
    size_t x = 0;
    int keep;       
    int min;            
    int max;        
    int position_max;   
    int position_min;   
    int lenght;     

    keep = 0;
    max = 0;
    min = INT_MAX;
    position_max = 0;
    lenght = strlen(stringa);

    while (x != lenght + 1)
    {
        if (isalnum(stringa[x]) != 0)
        {
            keep++;
        }
        
        if (isspace(stringa[x]) != 0 || stringa[x] == '\0')
        {
            if (keep > max)
            {
                position_max = x;
                max = keep;
            }
            if (keep < min)
            {
                position_min = x;
                min = keep;
            }
            keep = 0;
        }
        x++;
    }

    puts("最长单词:");
    for (x = position_max - max; x != position_max; x++)
    {
        printf("%c", stringa[x]);
    }
    puts("\n\n最短单词:");
    for (x = position_min - min; x != position_min; x++)
    {
        printf("%c", stringa[x]);
    }
    
    return 0;
}

注:原代码存在两处会导致运行异常的问题,已做修正:一是遍历用的变量x未初始化直接使用,会触发未定义行为;二是keep初始值设为1,会导致首个单词长度统计多1;同时移除了代码中未被调用的冗余头文件引用。

内容的提问来源于stack exchange,提问作者steno。

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 20:06:10