Обработка строк: определиния упорядоченности слов лексикографически, замена букв, поиск и вывод самого длинного слова. - C (СИ)

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

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

Помогите, пожалуйста решить задачу на C: Дан текст. 1) Определить, упорядочены ли лексикографически слова данного предложения (следуют ли в алфавитном порядке). 2) Заменить все буквы «А» на буквы «а». 3) Вывести на экран самое длинное слово. Я попытался выполнить пункт два, но программа работает некорректно. На счёт же первого и третьего пункта я нахожусь в полном неведении. Также я не уверен в правильности подхода к решению задачи.
#include <stdio.h>
#include <conio.h>
#include <string.h>
#define N 256
 
int main()
{
    char st[N];
    int i;
    puts("Vvedite tekst:");
    gets(st);
    for(i=0;i=N;i++)
    if(st[i]='a') st[i]='A';
    printf("\n%s",st);
    getch();
    return 0;
}
Заранее благодарен за помощь. П.С. Буду искренне рад, если сможете еще и объяснить, как решается задача, а также посоветовать, где можно почитать про строки.

Решение задачи: «Обработка строк: определиния упорядоченности слов лексикографически, замена букв, поиск и вывод самого длинного слова.»

textual
Листинг программы
#include <cstdlib>
#include <iostream>
#include <cstring>
 
int main(int argc, char *argv[])
{
    char str[100];
    char *p;
    int mas[50];
    int j=0, k=0;
   
    for(int i=0; i<50; i++) mas[i] = 0;
    
    std::cout << "enter text: ";
    std::cin.getline(str, 100); 
    
    p =  strtok(str, " ,.!?:");    
    while(p != NULL)
    {        
        mas[j] = p[0];             
        j++;
        k++;
        p=strtok(NULL, " ,.!?:");        
    }
    int flag=1;
    for(int i=0; i<k-1; i++) 
    {
        if(mas[i+1] < mas[i])
        {
            flag=0;
            break;
        }
    }
    if(flag) std::cout << "True!\n";
    else std::cout << "False!\n";
    std::cout << "\n";
       
    system("PAUSE");
    return EXIT_SUCCESS;
}

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

  1. Подключение необходимых библиотек для работы с C++
  2. Объявление переменных: — str — массив символов для ввода текста — p — указатель на текущий символ в массиве str — mas — массив для хранения первых букв каждого слова — j — счётчик заполненных элементов массива mas — k — счётчик слов в введенной строке
  3. Ввод текста с помощью функции std::cin.getline
  4. Разделение введенной строки на слова с помощью функции strtok
  5. Заполнение массива mas первыми буквами каждого слова
  6. Установка флага=1
  7. Проверка упорядоченности массива mas с помощью цикла for и условием if
  8. Если флаг=0, то вывод False, иначе вывод True
  9. Вывод сообщения об успешном выполнении программы
  10. Ожидание нажатия клавиши с помощью функции system(PAUSE)
  11. Возвращение значения EXIT_SUCCESS, указывающего на успешный конец работы программы

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


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

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

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