21xrx.com
2024-12-22 21:58:07 Sunday
登录
文章检索 我的文章 写文章
C++实现:求句子中最长单词长度及其位置
2023-07-01 02:09:38 深夜i     --     --
C++ 最长单词 长度 位置 实现

C++是一种广泛应用于计算机程序开发的编程语言。在这篇文章中,我们将介绍如何使用C++编写程序,以通过输入的句子找出其中最长单词的长度及其在句子中的位置。

首先,我们需要了解程序需要实现的功能。输入一个句子后,程序必须遍历整个句子,找到句子中的每一个单词,并且在找到单词时,必须记录该单词的长度和它在句子中的位置。程序还需要确定哪一个单词是最长的,其长度以及该单词在句子中的位置。

程序的实现过程非常简单。首先,我们需要声明一个字符串变量,用于接收用户输入的句子。然后,使用一个循环遍历字符串中的每一个字符,将其与空格和标点符号进行对比,判断字符之间是否存在单词的分隔符。

如果两个字符之间不存在分隔符,则将这些字符组成一个单词,并记录该单词的长度和在句子中的位置。如果已经找到了一个单词,则需要对其长度进行比较,并记录最长单词的长度及其在句子中的位置。程序在遍历完整个句子后,输出最长单词的长度和它在句子中的位置。

下面是C++代码实现:


#include <iostream>

#include <string>

using namespace std;

int main()

{

  string sentence;

  cout << "Please enter a sentence:" << endl;

  getline(cin, sentence);

  int max_length = 0;

  int max_pos = -1;

  int length = 0;

  int pos = -1;

  for (int i = 0; i < sentence.length(); i++)

  {

    if (sentence[i] == ' ' || sentence[i] == ',' || sentence[i] == '.' || sentence[i] == '?')

    {

      if (length > max_length)

      

        max_length = length;

        max_pos = pos;

      

      length = 0;

    }

    else

    {

      if (length == 0)

      

        pos = i;

      

      length++;

    }

  }

  if (length > max_length)

  

    max_length = length;

    max_pos = pos;

  

  if (max_pos == -1)

  

    cout << "No word found" << endl;

  

  else

  {

    cout << "The longest word is \"" << sentence.substr(max_pos, max_length) << "\" at position " << max_pos << " with length " << max_length << endl;

  }

  return 0;

}

这段代码中,我们使用了字符串函数getline()来接收用户的输入,并使用length()函数来获取字符串的长度。在循环中,我们使用了substr()函数来提取单词,并使用if语句来进行长度比较和记录,最后输出结果。

需要注意的是,我们使用空格、逗号、句点和问号作为分隔符,你可以根据实际需要对分隔符进行修改。

总结起来,C++是一种高效且可靠的编程语言,在处理字符串和文本的任务中表现非常出色。上面的代码演示了如何利用C++的字符串函数来实现求解出句子中最长单词的长度及其位置,希望能为初学者提供一些参考和启示。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复