获取str中最长单词(包括相同长度的所有单词)的下标

void longest(char* str, int* k)//获取str中最长单词的下标,存入k数组中。数组数值等于-1,表示不是最长单词下标,
{
    int i = 0, j = 0, len = 0, max = 0;
    char ch = 0;
    while (i <= strlen(str))
    {
        ch = str[i++];
        if (Isletter(ch))
            len++;
        else //只要不是字母一概设为单词的结尾
        {
            if (len > max)
            {
                max = len;
                j = 0;//单词长度超过前面的最长单词,k数组下标归零
                k[j++] = i - max - 1;
            }
            else if (len == max &amp;&amp; max > 0)//出现相同长度的最长单词,下标存入k数组
                k[j++] = i - max - 1;
            len = 0;
        }
    }
    k[j] = -1;//最后一个k数组元素赋值-1.统计结束。
}#牛客AI配图神器#
全部评论

相关推荐

点赞 评论 收藏
分享
投递蚂蚁集团等公司10个岗位 笔试 技术岗笔试题求解
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务