Обработать строку на основе удаления лишних пробелов между словами - C (СИ)

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

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

Требуется разработать программу,которая обеспечивает: 1.возможность ввода строки со словами,разделенными пробелами 2.обработку строку на основе удаления лишних пробелов между словами и последующего преобразования строки согласно своему варианту задания. 3.вывод на экран полученной строки Мое задание: В слове имеется только одна пара одинаковых символов,симметрично расположенных относительно центра слова. Примеры: abcda, aba, abcabc вот до чего дошла потом не знаю как делать?
#include <stdio.h>
#include <string.h>
main()
{
    char str1[200];
    char str2[200];
    printf ("Vxodnaia stroka = ");
    gets(str1);
    int i,j;
    for (i = 0, j = 0; str1[i] != 0; i++)
    {
        if ((str1[i] !=' ')||((str1[i]==' ')&&(str1[i+1]!=' ')))
        {
            str2[j]=str1[i];
            j=j+1;
        }
    }
    str2[j]=0;
    
    printf("Vixodnaya stroka = %s \n",str2);
}

Решение задачи: «Обработать строку на основе удаления лишних пробелов между словами»

textual
Листинг программы
#include <stdio.h>
#include <string.h>
main()
{
    char str1[200];
    char mas[20][10];
    char *ch;
    printf ("Vxodnaia stroka = ");
    gets(str1);
    int i,j,k,count;
 
    ch = strtok(str1, " ");         //запись каждого слова в массив
    for (i = 0; ch != '\0'; i++)
        {
            strcpy(mas[i], ch);
            ch = strtok(NULL, " ");
        }
    
for(j=0;j<i;j++) //по всем словам
{
    count=0;
    for(k=0;k<(strlen(mas[j])-1)/2;k++) //по слову
        {
            if((mas[j][k]==mas[j][strlen(mas[j])-1-k]))
            {
                count++;        
            }
        }
    if(count==1)
        printf("%s ",mas[j]);   
}
}

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

  1. Включаются необходимые заголовочные файлы
  2. Создается переменная типа char для хранения строки
  3. Создается массив из 20 строк по 10 символов
  4. Создается указатель на первый символ строки
  5. Выводится приглашение для ввода строки
  6. Вводится строка с помощью функции gets
  7. Создаются необходимые переменные для обработки строки
  8. Указатель ch инициализируется первым словом строки с помощью функции strtok
  9. В цикле while сохраняются все слова строки в массив mas
  10. В цикле for выводится каждое слово массива mas
  11. В каждой итерации цикла проверяется, является ли текущее слово симметричным, и если да, то выводится на экран

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


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

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

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