找出最长的一个单词

还是那位大神~
https://coderbyte.com/results/hyuil:Longest%20Word:Cpp

#include <iostream>
#include <cctype>
#include <cstring>
using namespace std;

string LongestWord(string sen) { 

  // code goes here   
  string sen2 = "";
  for(int i=0;i<sen.length();i++)
  {
    if(isalpha(sen[i])||sen[i]==' '||'0'<=sen[i]&&sen[i]<='9')
    {
      sen2.append(sen.substr(i,1));
    }
  }
  char* sench = (char*)sen2.c_str();
  string longest = "";
  int longestLen = 0;
  for(const char* pch=strtok(sench," ");pch;pch=strtok(NULL," "))
  {
    if(strlen(pch)>longestLen)
    {
      longest = pch;
      longestLen=strlen(pch);
    }
  }
  return longest; 

}

int main() { 

  // keep this function call here
  cout << LongestWord(gets(stdin));
  return 0;

}

部分库函数说明:

1、isalpha
原型:int isalpha( int ch ) ;
C++使用库 < cctype > (C语言使用 < ctype.h >)

功能:判断字符若为英文字母,返回非0(小写字母为2,大写字母为1)。若不是字母,返回0。

2、append
原型:
1.append (const string& str);
2.append (const string& str, size_t subpos, size_t sublen = npos);
使用库< string >

功能: 在字符串的末尾添加字符

3、substr
原型:string substr (size_t pos = 0, size_t len = npos) const;
使用库:< string >

功能:substr是C++语言函数,主要功能是复制子字符串,要求从指定位置开始,并具有指定的长度。如果没有指定长度_Count或_Count+_Off超出了源字符串的长度,则子字符串将延续到源字符串的结尾。

4、c_str
原型:const char* c_str() const noexcept;
使用库:< string >

功能:返回当前字符串的首字符地址 ,返回const char*类型

5、strtok
原型:char *strtok(char s[], const char *delim);
使用库:< string >

功能:分解字符串为一组字符串。s为要分解的字符,delim为分隔符字符(如果传入字符串,则传入的字符串中每个字符均为分割符)。首次调用时,s指向要分解的字符串,之后再次调用要把s设成NULL。

6、strlen
原型:extern unsigned int strlen(char *s);
使用库: < string>

功能:计算给定字符串的(unsigned int型)长度,不包括’\0’在内

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值