1

Тема: Задача на символьні рядки

Завдання:Задано текст в якому слова розділені пробілами та розділовими знаками.Розробити програму,яка в словах непарної довжини вилучає середню літеру.
Допоможіть будь ласка,ніяк не можу зрозуміти правильність вводу.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>


int main()
{
    int i,k;
    char s[100];
    printf("Vvedit tekst");
    scanf("%s",s);
    k=0;
    for(i=0;i<strlen(s);i++)
    k++;
    if ((s[i]==' ')||(s[i]==',')||(s[i]=='.'))
        if ((k%2)!=0)s[k/2+1]=




    return 0;
}

2

Re: Задача на символьні рядки

scanf("%s",...) вводить лише до пробіла. Якщо вам треба читати весь рядок, використовуйте gets (чи його варіанти, якщо компілятор лаятиметься).

3

Re: Задача на символьні рядки

Умова такого типу буде коректна для цієї задачі?

if ((s[i]==' ')||(s[i]==',')||(s[i]=='.'))

4

Re: Задача на символьні рядки

dimakrupko00 написав:

Умова такого типу буде коректна для цієї задачі?

if ((s[i]==' ')||(s[i]==',')||(s[i]=='.'))

Якщо це всі можливі розділові знаки, тоді так.
Існує маленький лайфхак:

if(strchr(" ,.",s[i])!=NULL)

або навіть просто

if(strchr(" ,.",s[i]))

робить ту саму перевірку, бо шукає в стрічці цей символ і повертає NULL, якщо не знайшов.

Подякували: dimakrupko00, leofun012

5

Re: Задача на символьні рядки

#include <stdio.h>
#include <stdlib.h>
#include <string.h>


int main()
{
    int i,k,l,T;
    char s[100];
    k=0;
    T=strlen(s);
    printf("Vvedit tekst\n");
    gets(s);
    for(i=0;i<T;i++)
    {

        printf("%d\t",k);

        if ((s[i]==' ')||(s[i]==',')||(s[i]=='.'))
            {
                l=(k-1)%2;
                if (l!=0){s[k/2+1]=' ';}
                else   {k=0;l=0;}
            }
        k++;
    }
   puts(s);
    return 0;
}

Пробую вилучити символ шукаючи через %2,але нічого взашалі не змінюється,ніби в цикл і не заходить

6 Востаннє редагувалося koala (13.12.2019 07:58:42)

Re: Задача на символьні рядки

А чому дорівнює T? І що ви "шукаєте через %2"?

7 Востаннє редагувалося ur_naz (13.12.2019 10:38:39)

Re: Задача на символьні рядки

Помилка усіх початківців у тім, що вони зразу починають писати код. Натомість спочатку треба формалізувати вихідні дані та написати алгоритм.

Подякували: koala1