Нужно найти самое длинное слово в строке. BAЖНО! Без класса string! проблема в том что код, не работает. и мне выводит всю строку вместо самого длинного слова
#include <iostream>
#include <locale>
#include <cstring>
using namespace std;
int main()
{
setlocale(LC_ALL, "rus");
char S[100];
int n, i, k, kol, max = 0, y,g,j=0;
cin.getline(S, 100);
int p;
i = 0;
for (int l=0;l<strlen(S);l++)//проходимся по длине строки, и ищем пробелы, и после каждого меряем слово.
{
while (S[l] != ' ')
{
if (S[l] == ' ')
{
p=l;
l++;
}
else
{
do
{
l++;
} while (S[l] != ' '); //длина слова
kol = strlen(S)-l-p; //длина слова //p последний пробел
if (kol > max)
{
l++;
///max word
max = kol;
}
}
}
}
for (n; n<k; n++)
{
cout << S[n];
}
cout << " - самое длинное слово" << endl;
system("pause");
}
У вас на мой вкус сложновато... Я бы делал так:
int main()
{
const int STRLEN = 200;
char s[STRLEN];
cin.getline(s, STRLEN);
size_t maxlen = 0;
char * maxidx = nullptr;
for(char * c = s; *c;)
{
while(*c == ' ') ++c;
if (*c == 0) break;
char * begin = c;
while(*c && *c != ' ') ++c;
if (maxlen < (c - begin))
{
maxlen = c - begin;
maxidx = begin;
}
}
if (maxlen == 0)
{
cout << "Empty line!\n";
return 0;
}
else
{
*(maxidx+maxlen) = 0;
cout << maxidx;
}
}
Не уверен что это поможет вам, вот рабочий код:
#include <iostream>
using namespace std;
int main() {
// сторка
char * theString = " dsjfkd1 sdf2 dsfkdsj3 sdfjsdkjfdsjf4 d5 ";
char * theLetter = theString; // здесь будем хранить адрес очередного символа начинаяя с первого
unsigned counter = 0, // счетчик подсчета букв в слове
storage = 0; // здесь будем хранить количество букв самого большого слова
while (*theLetter) { // повторять пока не прийдет нулевой символ конца
theLetter++; // увеличиваем очерной адрес на размер символа
if (*theLetter != ' ') // если не пробел
counter++; // увеличиваем счетчик
else
if (counter > storage) { // если букв больше чем мы знали раньше ,
storage = counter; // то сохраним это число
counter = 0; // апотом обнулим счетчик подсчета
}
}
cout << storage << endl; // результат
}
Здравствуйте, возникла проблема при выполнении программы
Приветствуюподскажите, есть обычная форма подписки и есть всплывающее окно при уходе с сайта