1

Тема: Опрацювання текстових даних

допоможіть виправити код мовою с.
Дано масив символів, що містить текст. У рядку між словами потрібно вставити
замість пробілу кому і пробіл.
Але чомусь в моєму коді не виводить текс який я вводжу і не замінює символи.

#include "string.h"
#include <iostream>
#include<stdio.h>
    using namespace std;

    int main()
    {
        setlocale(LC_ALL, "ukr");
        char X1[20];
        cin >> X1;
        char* gets(X1);
        for (int i = 0; i < strlen(X1); i++) 
            if (X1[i] == ' ')
                 X1[i] = ',',' ';
        puts (X1); 
}

2

Re: Опрацювання текстових даних

X1[i] = ',',' ';

https://www.youtube.com/watch?v=LJsQZ6QNdmU

Подякували: tchort, dot2

3

Re: Опрацювання текстових даних

Крім того це жодного разу не мова с.

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

4 Востаннє редагувалося dot (27.05.2021 02:05:27)

Re: Опрацювання текстових даних

Chemist-i написав:

Крім того це жодного разу не мова с.

Tak kagec, natce je riznytsja mig Dgavoju i DgavaSkryptom, Si i Si-Plus-Pusom, bhh…

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

5 Востаннє редагувалося koala (27.05.2021 11:04:26)

Re: Опрацювання текстових даних

hrundatania написав:

допоможіть виправити код мовою с.

Це не мова C. У мові C немає бібліотеки iostream і директиви using (та й в C++ її радять використовувати обмежено).

hrundatania написав:

Але чомусь в моєму коді не виводить текс який я вводжу

Бо ви його ніде й не виводите.

hrundatania написав:

і не замінює символи.

Намагається замінити, але їх там немає, бо istream::operator>>  читає не до нового рядка, а лише до пробілу, тому if (X1[ i] == ' ') ніколи не спрацює. Утім, ви намагаєтеся запхати два символи на місце одного, що очевидно не спрацює (ніколи не намагалися два однакові блоки LEGO на місце одного всунути? Отут те саме); в результаті у вас виконувалося б тільки X1[ i] = ',', а те, що через кому - то окремий безглуздий вираз.

Вам треба:
1. Усвідомити, що програмування - не магія. Кожен рядок має конкретну дію, і ви маєте розуміти, що саме ви робите в кожному рядку.
2. Створити новий рядок і копіювати туди по символу з введеного, якщо це не пробіл, і два символи ", " - якщо пробіл.

Подякували: leofun01, Chemist-i, hrundatania3