Какие функции из библиотеки string можно добавить?
Стояла задача:Дана строка символов. Найти в строке самое длинное слово и вывести его на экран. Код написал и все работает, только вот практик сказал добавить еще функций из библиотеки string, а при надобности вообще переписать код.. Посмотрел все функции из библиотеки и самой нужной воспользовался. Можно ли с помощью других сделать какую-нибудь проверку или вовсе добавить незначительную деталь с использованием функции из string?
#include <string.h>
#include <locale.h>
#include <stdio.h>
int main() {
setlocale(LC_ALL, "Rus");
char s[1024];
int sm = 0, lm = 1, bs = 0, bl = 0;
printf("Введите строку символов: ");
gets(s);
for (int i = 0; i < sizestrlen(s) + 1; i++) {
if (s[i] == ' ' || s[i] == '\0') {
bl = i;
if (bl - bs > lm - sm) {
sm = bs;
lm = bl;
}
bs = i + 1;
}
}
printf("Самое длинное слово - ");
for (int i = sm; i < lm; i++) {
printf("%c", s[i]);
}
return 0;
}
Ответы (2 шт):
Автор решения: Tellator
→ Ссылка
Попробуй isLetter или что-то в этом роде (не помню точное название) для определения пробелов - расскажи практику, что предотвращаешь пробелы в начале строки и двойные пробелы в середине
Автор решения: MBo
→ Ссылка
#include <stdio.h>
#include <string.h>
#include <locale.h>
int main()
{
setlocale(LC_ALL, "Rus");
char str[] = "съешь ещё этих мягких французских булок, да выпей чаю";
char lw[100];
char *pw = strtok(str, " ,.");
int maxl = 0;
int slen;
while (pw != NULL) {
slen = strlen(pw);
if (slen > maxl) {
maxl = slen;
strcpy(lw, pw);
}
pw = strtok(NULL, " ,.");
}
printf("%s", lw);
return 0;
}