Создать строки А1 и А2. В строку А3 добавьте в новую строку последние 4 символа строки A1 и первые 4 символа строки A2

Имеем строки A1 и A2. Строки вводятся пользователем (количество введенных символов не менее 10). Создайте строку A3 в соответствии со следующим правилом: добавьте в новую строку последние 4 символа строки A1 и первые 4 символа строки A2.

Создано рядки А1 и А2:

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

int main()
{
char string [10];
printf ("enter the string A1: ");
gets (string);
printf(string);

printf (" \n enter the string A2: ");
gets (string);
printf(string );

printf (" \n string A3: ");

Помогите , пожалуйста, как осуществить добавления в последнию строку 4 стимволов А1 и первые символы строки А2.


Ответы (1 шт):

Автор решения: Mikhailo

Условие:

количество введенных символов не менее 10

Реальность: char string [10];, т.е. количество вводимых символов не более 9.

gets (string);
printf(string);

Первая строка - выход за границы вделенной памяти. Вторая - введите в ккачестве входной строки %s%s и посмотрите, что вам будет выведено.

Решение вот:

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

int main() {
    char A1[100], A2[100], A3[9];
    printf ("enter the string A1: ");
    fgets (A1,100,stdin);
    printf("A1: %s\n",A1);
    printf ("enter the string A2: ");
    fgets (A2,100,stdin);
    printf("A2: %s\n",A2);
    strncpy(A3,A1+strlen(A1)-5,4);
    strncpy(A3+4,A2,4);
    A3[8] = 0;

    printf("A3: %s\n",A3);
    }
→ Ссылка