Записать S1 после каждого слова в S2 - C (СИ)

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

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

Доброго времени суток. Помогите, пожалуйста, никак не могу привести в порядок программу. Перепробовала уйму способов, в любом варианте выдается какая-нибудь ошибка. В интернете похожих заданий не нашла. Записать S1 после каждого слова в S2. S1 и S2 – строки символов, задаваемые пользователем. s – одиночный символ, задаваемый пользователем.
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <malloc.h>
 
void main (){
    int  s=0,i=0;
    char s3[100]="";
    char *s1=(char*)malloc(1*sizeof(char));
    char *s2=(char*)malloc(1*sizeof(char));
 
printf("Enter S1: ");
 gets(s1);
printf("Enter S2 : ");
 gets(s2);
printf("\n");
printf("Stroka 1: %s",s1);
printf("\n");
printf("Stroka 2: %s",s2);
printf("\n");printf("\n");
while (*s2[i]!='\0'); 
{if (s2[i]!=' ') strcpy(s3,*s2[i]); 
if (s2[i]=' ') strcat(s1,s3);
}
    
printf("Stroka : ");
puts(s3);
getch();
}

Решение задачи: «Записать S1 после каждого слова в S2»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
 
int main() {
    int i = 0, j = 0, k;
    char s3[200] = "";
    char s1[100] = "";
    char s2[100] = "";
 
    printf("Enter S1: ");
    gets(s1);
    printf("Enter S2: ");
    gets(s2);
    printf("\n");
    printf("Stroka 1: %s", s1);
    printf("\n");
    printf("Stroka 2: %s", s2);
    printf("\n");
    printf("\n");
 
    for (i = 0; s2[i] != '\0'; ++i) {
        if (s2[i] != ' ') {
            s3[j++] = s2[i];
        }
        else {
            s3[j++] = ' ';
            for (k = 0; s1[k] != '\0'; ++k) {
                s3[j++] = s1[k];
            }
            s3[j++] = ' ';
        }
    }
    s3[j] = '\0';
 
    printf("Stroka : ");
    puts(s3);
 
    system("pause");
    return 0;
}

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

  1. Программа считывает строку S1 и S2 с помощью функции gets().
  2. Выводит на экран строки S1 и S2 с помощью функции printf().
  3. Создает пустую строку S3 для записи результата.
  4. Инициализирует счетчики i, j и k для отслеживания позиций символов в строках S2 и S1.
  5. Проходит по каждому символу в строке S2.
  6. Если символ не является пробелом, то добавляет его в начало строки S3 и увеличивает счетчик j.
  7. Если символ является пробелом, то добавляет пробел в начало строки S3 и начинает считывать символы из строки S1, добавляя их в строку S3 после пробела, пока не встретит еще один пробел или конец строки S1. Затем увеличивает счетчик j.
  8. После окончания обработки строки S2, добавляет в строку S3 дополнительный пробел и заканчивает строку S3 с помощью символа '\0'.
  9. Выводит на экран строку S3 с помощью функции puts().
  10. Ожидает нажатия клавиши для выхода из программы с помощью функции system().
  11. Возвращает 0, чтобы указать, что программа успешно завершилась.

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


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

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

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