字符串中最长的英文单词
时间: 2023-10-29 12:08:17 浏览: 209
这里提供两个代码示例,分别是C++和C#语言的实现方法。
C++代码示例:
该程序通过遍历字符串中的每个字符,将单词保存在一个字符数组中,并在遇到空格、逗号或句号时将其作为一个单词结束。然后,它将比较每个单词的长度,找到最长的单词并输出。
C++代码如下:
```
#include <iostream>
#include <cstring>
using namespace std;
//查找字符串中最长的一个单词
void FindLongestWord(string &s){
int maxLength = -1;//保存最长字符串的长度
int cnt = 0;//保存word字符串的游标
char word[101],longest[101];//word保存遍历的单词,longest保存最长的单词
for(int i = 0; i < s.length(); i++){
if(s[i] != ' ' && s[i] != ',' && s[i] != '.'){
word[cnt++] = s[i];//保存单词
}
if(s[i] == ' ' || s[i] == ',' || s[i] == '.'){
if(maxLength < cnt){//如果是最长的单词,保存至longest中
maxLength = cnt;
for(int j = 0; j < maxLength; j++){
longest[j] = word[j];
}
}
cnt=0;
}
}
cout<<"原始字符串:\n"<<s<<endl;
cout<<"最长的单词:"<<endl;
for(int i = 0; i < maxLength; i++)
cout<<longest[i];
}
int main() {
string str;
getline(cin,str);
FindLongestWord(str);
return 0;
}
```
C#代码示例:
该程序使用C#语言中的ArrayList类来保存所有最长的单词,并输出最长单词的长度和数量。
C#代码如下:
```
using System;
using System.Collections;
class Program
{
static void Main(string[] args)
{
Console.WriteLine("请输入字符串:");
string inputString = Console.ReadLine();
Program p = new Program();
ArrayList al = p.GetLongestWord(inputString);
Console.WriteLine("最长的单词是:");
for (int m = 0; m < al.Count; m++)
{
Console.WriteLine(al[m]);
}
string longestWord = (string)al[0];
Console.WriteLine("最长单词的长度为:{0}", longestWord.Length);
Console.WriteLine("最长单词的数量为:{0}", p.GetLongestWord(inputString).Count);
Console.ReadKey();
}
public ArrayList GetLongestWord(string inputString)
{
ArrayList al = new ArrayList();
string[] words = inputString.Split(' ', ',', '.');
int maxLength = 0;
foreach (string word in words)
{
if (word.Length > maxLength)
{
maxLength = word.Length;
al.Clear();
al.Add(word);
}
else if (word.Length == maxLength)
{
al.Add(word); }
}
return al;
}
}
```
阅读全文