Exercício 11: Construir um programa que seja capaz de concatenar uma string s1 e uma outra string s2 na própria string s2. Por exemplo:
Digite a string s1: Quem canta os males espanta.
Digite a string s2: Ha males que vem para o bem.
Nova string s2: Ha males que vem para o bem. Quem canta os males espanta.

Passo 1

O enunciado pede que a gente construa um programa para concatenar duas strings s1 e s2, colocando o conteúdo de s1 no final de s2, usando manipulação de strings (biblioteca <string.h> em C) e leitura de linhas do usuário.

Passo 2

Primeiro, lemos a string s1 do usuário, usando uma função que capte toda a linha (por exemplo, fgets), e removemos o caractere de nova linha no final.
Em seguida, lemos a string s2 do usuário da mesma forma e também eliminamos o ‘\n’ que o fgets inclui.
Antes de concatenar, temos que garantir que o buffer de s2 é grande o suficiente para comportar s2 + espaço extra + s1; por isso definimos um tamanho máximo razoável.

Passo 3

Para criar espaço entre as frases, usamos strcat(s2, " "), concatenando um espaço em branco ao final de s2.
Finalmente, usamos strcat(s2, s1) para anexar s1 ao final de s2 e então exibimos o resultado.

Passo 4

Esse passo a passo vale para C, mas a lógica é a mesma em outras linguagens: ler duas strings, adicionar um separador e concatená-las.

Resposta

#include <stdio.h>
#include <string.h>
#define MAX 200
int main() {
char s1[MAX];
char s2[MAX];
printf("Digite a string s1: ");
fgets(s1, MAX, stdin);
// Remove o '\n' que o fgets deixa
s1[strcspn(s1, "\n")] = '\0';

printf("Digite a string s2: ");
fgets(s2, MAX, stdin);
s2[strcspn(s2, "\n")] = '\0';

// Concatenamos um espaço e depois s1 ao final de s2
strcat(s2, " ");
strcat(s2, s1);

printf("Nova string s2: %s\n", s2);

return 0;
}

Exercícios relacionados