-
Notifications
You must be signed in to change notification settings - Fork 0
/
longestWord.cpp
106 lines (79 loc) · 1.89 KB
/
longestWord.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
/*
longestWord.cpp
Aulas de programação C++
Coderbyte exercise:
https://www.coderbyte.com/editor/Longest%20Word:Cpp
Longest Word
Have the function LongestWord(sen) take the sen parameter being
passed and return the largest word in the string.
If there are two or more words that are the same length, return
the first word from the string with that length.
Ignore punctuation and assume sen will not be empty.
Examples
Input: "fun&!! time"
Output: time
Input: "I love dogs"
Output: love
*/
#include <iostream>
using std::cout;
using std::endl;
using std::cin;
using std::getline;
#include <string>
using std::string;
int countWords(const string);
string biggerWord(const string line, const int n);
int main(){
int n;
string texto, maior;
cout << "Entre com o texto: ";
getline(cin,texto);
cout << endl;
cout << texto << endl;
n = countWords(texto);
cout << n << " palavras" << endl;
maior = biggerWord(texto,n);
cout << "maior palavra: " << maior << endl;
return 0;
}
// Recebe uma string e a quantidade de palavras existentes
// e retorna a palavra maior
string biggerWord(const string line, const int n){
int i,j,t,big;
string words[n];
char buffer[n];
j=0;
t=0;
for(i=0;i<line.length();i++){
buffer[j++] = line[i];
if(line[i] == ' '){
buffer[--j] = '\0';
words[t++] = buffer;
j=0;
}
}
buffer[j] = '\0';
words[t] = buffer;
big = 0;
for(i=0;i<n;i++){
if( words[i].length() > words[big].length() )
big = i;
}
return words[big];
}
// Recebe uma string formada por palavras separadas por um espaço
// e retorna o número de palavras da string
// Exemplo:
// "um dois tres" retorna 3
// "testando a função countWords" retorna 4
int countWords(const string text){
int c=0;
for(int i=0;i<text.length();i++){
if(text[i] == ' ')
c++;
}
return c+1;
}
// end of longestWord.cpp