Найти самое длинное слово заданного предложения - C (СИ) (76667)

Узнай цену своей работы

Формулировка задачи:

СИ Строки Найти самое длинное слово заданного предложения. Алгоритм: 1) найти начало слова 2) найти конец слова 3) искать до тех пор пока не найдёт конец 4) переписать в отдельный массив Не могу найти ошибку
#include<stdio.h>
#include<conio.h>
#include<string.h>
void main()
{
int i=0,j, h,g;
char s[100];
char c[100];
printf("vvedite stroku\n");
gets(s);
while(s[i]='\0'){
//ищем начало
    while(s[i]==' '||s[i]==','||s[i]=='.')
    i++;j=i;
//ищем конец слова
    while(s[j]!=' '&&s[j]!=','&&s[j]!='.')
    j++;
    for(g=i,h=0;g=i;h++,g++){
    c[h]=s[g];
    }
    puts(c);
    return 0;
}

}

Решение задачи: «Найти самое длинное слово заданного предложения»

textual
Листинг программы
#include <stdio.h>
#include <string.h>
 
#define DELIM " \t\n"
 
int main(void) {
    char buf[BUFSIZ], * pLongest, * pCurrent;
    
    while ( printf("String: ") && fgets(buf, BUFSIZ, stdin) && *buf != '\n' ) {
        if ( ! ( pLongest = strtok(buf, DELIM) ) ) {
            fprintf(stderr, "String is empty!\n");
            continue;
        }
        while ( pCurrent = strtok(NULL, DELIM) )
            if ( strlen(pLongest) < strlen(pCurrent) )
                pLongest = pCurrent;
        printf("First longest word: %s\n", pLongest);
    }
    
    return 0;
}

Объяснение кода листинга программы

  1. Подключение необходимых библиотек для работы с файлами и строками.
  2. Определение строки-разделителя.
  3. Объявление переменных: — buf — буфер для чтения строки из стандартного ввода; — pLongest — указатель на самое длинное слово; — pCurrent — указатель на текущее слово.
  4. Цикл, который повторяется до тех пор, пока пользователь не введет пустую строку или не отправит сигнал конца файла.
  5. Проверка на пустую строку и очистка буфера.
  6. Проверка, является ли текущее слово самым длинным. Если нет, то поиск самого длинного слова продолжается.
  7. Вывод самого длинного слова на экран.
  8. В конце программы возвращается 0, что означает успешное завершение работы программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.8 из 5
Похожие ответы