算法:编程在一个已知的字符串中查找最长单词,假定字符串中只包含字母和空格,空格用来分隔不同单词

简介: 算法:编程在一个已知的字符串中查找最长单词,假定字符串中只包含字母和空格,空格用来分隔不同单词

程序分析:


可以定义两个字符串,一个用来存放字符串,一个用来存储最长的单词。通过比较得到最长的单词,再通过元素下标来获取最长的单词。


#include "stdio.h"
#include "string.h"
int main(void)
{
    //定义两个数组,sentence储存字符串,word存储单词
    char sentence[1024] = {}, word[64] = {};
    //length:单词长度;index:字符串下标
    int length = 0, index = 0;
    int max = 0, k = 0;
    printf("please input a sentence:");
    //fgets():从键盘获取字符串
    fgets(sentence, 1024, stdin);
    //循环直到字符串结束
    for (int i = 0; sentence[i] != '\0'; i++)
    {
        length = 0;
        //获取一个单词的长度
        for (k = i; sentence[k] != ' ' && sentence[k] != '\0'; k++)
        {
            length++;
            index++;
        }
        //判断当前单词长度是否大于已判断的最大单词长度
        if (length >= max)
        {
            //清空word数组
            memset(word, '\0', sizeof(max));
            max = length;
            for (int j = 0; j<length; j++)
            {
                word[j] = sentence[index - length + j];
            }
            index++;
            i = k;
        }
    }
    puts(word);
    return 0;
}
目录
打赏
0
0
0
0
5
分享
相关文章
|
7月前
|
【算法】滑动窗口——找到字符串中所有字母异位词
【算法】滑动窗口——找到字符串中所有字母异位词
|
4月前
|
在Python编程中,分治法、贪心算法和动态规划是三种重要的算法。分治法通过将大问题分解为小问题,递归解决后合并结果
在Python编程中,分治法、贪心算法和动态规划是三种重要的算法。分治法通过将大问题分解为小问题,递归解决后合并结果;贪心算法在每一步选择局部最优解,追求全局最优;动态规划通过保存子问题的解,避免重复计算,确保全局最优。这三种算法各具特色,适用于不同类型的问题,合理选择能显著提升编程效率。
91 2
|
5月前
|
两个字符串匹配出最长公共子序列算法
本文介绍了最长公共子序列(LCS)问题的算法实现,通过动态规划方法求解两个字符串的最长公共子序列,并提供了具体的编程实现细节和示例。
140 1
两个字符串匹配出最长公共子序列算法
数据结构与算法学习一:学习前的准备,数据结构的分类,数据结构与算法的关系,实际编程中遇到的问题,几个经典算法问题
这篇文章是关于数据结构与算法的学习指南,涵盖了数据结构的分类、数据结构与算法的关系、实际编程中遇到的问题以及几个经典的算法面试题。
67 0
数据结构与算法学习一:学习前的准备,数据结构的分类,数据结构与算法的关系,实际编程中遇到的问题,几个经典算法问题
|
5月前
|
条件运算符与条件if的姻缘,打擂台算法和大小写字母转换,if逻辑避坑
条件运算符与条件if的姻缘,打擂台算法和大小写字母转换,if逻辑避坑
47 1
Python算法编程:冒泡排序、选择排序、快速排序
Python算法编程:冒泡排序、选择排序、快速排序
54 0
掌握算法学习之字符串经典用法
文章总结了字符串在算法领域的经典用法,特别是通过双指针法来实现字符串的反转操作,并提供了LeetCode上相关题目的Java代码实现,强调了掌握这些技巧对于提升算法思维的重要性。
编程之旅中的算法启示
【8月更文挑战第31天】在编程世界的迷宫里,算法是那把钥匙,它不仅能解锁问题的答案,还能引领我们深入理解计算机科学的灵魂。本文将通过一次个人的技术感悟旅程,探索算法的奥秘,分享如何通过实践和思考来提升编程技能,以及这一过程如何启示我们更深层次地认识技术与生活的交织。
【算法】滑动窗口——串联所有单词的子串
【算法】滑动窗口——串联所有单词的子串
基于PSO粒子群优化的CNN-LSTM-SAM网络时间序列回归预测算法matlab仿真
本项目展示了基于PSO优化的CNN-LSTM-SAM网络时间序列预测算法。使用Matlab2022a开发,完整代码含中文注释及操作视频。算法结合卷积层提取局部特征、LSTM处理长期依赖、自注意力机制捕捉全局特征,通过粒子群优化提升预测精度。适用于金融市场、气象预报等领域,提供高效准确的预测结果。

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等