1. 程式人生 > >找出最長的一個單詞

找出最長的一個單詞

#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’在內