Напишите программу, которая выводит самое длинное слово переданной её символьной строки. Слово – это последовательность непробельных символов, ограниченная пробелами или концами строки.
Входные данные
Входная строка содержит произвольную последовательность символов.
Выходные данные
Программа должна вывести в первой строке самое длинное слово переданной ей строки, а во второй – длину этого слова. Если слов максимальной длины несколько — вывести первое встретившееся слово максимальной длины.
Примеры
входные данные
abra cadabra fibra
выходные данные
cadabra
7
C/C++
Помогите с задачей по C++
Вот пример решения задачи на C++:
#include <iostream>
#include <string>
using namespace std;
int main() {
string input;
getline(cin, input); // считываем строку
string longest_word = "";
int longest_length = 0;
string current_word = "";
int current_length = 0;
for (char c : input) {
if (c == ' ') { // если символ - пробел, значит, текущее слово закончилось
if (current_length > longest_length) { // если текущее слово длиннее, чем самое длинное слово до этого
longest_word = current_word;
longest_length = current_length;
}
current_word = "";
current_length = 0;
} else {
current_word += c;
current_length++;
}
}
// проверяем последнее слово
if (current_length > longest_length) {
longest_word = current_word;
longest_length = current_length;
}
cout << longest_word << endl << longest_length << endl;
return 0;
}
Программа считывает строку с помощью функции getline, затем проходится по каждому символу строки и собирает слова, подсчитывая их длину. Если текущее слово длиннее, чем самое длинное слово до этого, то оно становится новым самым длинным словом. В конце программы выводится самое длинное слово и его длина.
#include <iostream>
#include <string>
using namespace std;
int main() {
string input;
getline(cin, input); // считываем строку
string longest_word = "";
int longest_length = 0;
string current_word = "";
int current_length = 0;
for (char c : input) {
if (c == ' ') { // если символ - пробел, значит, текущее слово закончилось
if (current_length > longest_length) { // если текущее слово длиннее, чем самое длинное слово до этого
longest_word = current_word;
longest_length = current_length;
}
current_word = "";
current_length = 0;
} else {
current_word += c;
current_length++;
}
}
// проверяем последнее слово
if (current_length > longest_length) {
longest_word = current_word;
longest_length = current_length;
}
cout << longest_word << endl << longest_length << endl;
return 0;
}
Программа считывает строку с помощью функции getline, затем проходится по каждому символу строки и собирает слова, подсчитывая их длину. Если текущее слово длиннее, чем самое длинное слово до этого, то оно становится новым самым длинным словом. В конце программы выводится самое длинное слово и его длина.
#include <iostream>
#include <string>
using namespace std;
int main() {
string input;
getline(cin, input); // считываем строку
string longest_word = "";
int longest_length = 0;
string current_word = "";
int current_length = 0;
for (char c : input) {
if (c == ' ') { // если символ - пробел, значит, текущее слово закончилось
if (current_length > longest_length) { // если текущее слово длиннее, чем самое длинное слово до этого
longest_word = current_word;
longest_length = current_length;
}
current_word = "";
current_length = 0;
} else {
current_word += c;
current_length++;
}
}
// проверяем последнее слово
if (current_length > longest_length) {
longest_word = current_word;
longest_length = current_length;
}
cout << longest_word << endl << longest_length << endl;
return 0;
}
#include <string>
using namespace std;
int main() {
string input;
getline(cin, input); // считываем строку
string longest_word = "";
int longest_length = 0;
string current_word = "";
int current_length = 0;
for (char c : input) {
if (c == ' ') { // если символ - пробел, значит, текущее слово закончилось
if (current_length > longest_length) { // если текущее слово длиннее, чем самое длинное слово до этого
longest_word = current_word;
longest_length = current_length;
}
current_word = "";
current_length = 0;
} else {
current_word += c;
current_length++;
}
}
// проверяем последнее слово
if (current_length > longest_length) {
longest_word = current_word;
longest_length = current_length;
}
cout << longest_word << endl << longest_length << endl;
return 0;
}
Похожие вопросы
- ПОМОГИТЕ С ЗАДАЧЕЙ НА C++
- Помогите решить задачу по C++!
- Помогите решить задачу на C++.
- Помогите с задачей по C++
- Помогите решить задачу на C++
- Помогите решить задачу на c++
- Помогите решить задачу на C++
- Помогите с задачей по C++
- Помогите с задачей в C++ пожалуйста. Какое условие правильно написать в Z чтобы выводилось сообщение "error!" ?
- Помогите решить задачу на C++