Записать 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; }
Объяснение кода листинга программы
- Программа считывает строку S1 и S2 с помощью функции gets().
- Выводит на экран строки S1 и S2 с помощью функции printf().
- Создает пустую строку S3 для записи результата.
- Инициализирует счетчики i, j и k для отслеживания позиций символов в строках S2 и S1.
- Проходит по каждому символу в строке S2.
- Если символ не является пробелом, то добавляет его в начало строки S3 и увеличивает счетчик j.
- Если символ является пробелом, то добавляет пробел в начало строки S3 и начинает считывать символы из строки S1, добавляя их в строку S3 после пробела, пока не встретит еще один пробел или конец строки S1. Затем увеличивает счетчик j.
- После окончания обработки строки S2, добавляет в строку S3 дополнительный пробел и заканчивает строку S3 с помощью символа '\0'.
- Выводит на экран строку S3 с помощью функции puts().
- Ожидает нажатия клавиши для выхода из программы с помощью функции system().
- Возвращает 0, чтобы указать, что программа успешно завершилась.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д