Exercício 10: Construir um programa que seja capaz de concatenar uma string s1 e uma outra string s2 em uma string s3. Por exemplo:
Digite a string s1: Quem canta os males espanta.
Digite a string s2: Ha males que vem para o bem.
Nova string s3: Quem canta os males espanta. Ha males que vem para o bem.
Digite a string s1: Quem canta os males espanta.
Digite a string s2: Ha males que vem para o bem.
Nova string s3: Quem canta os males espanta. Ha males que vem para o bem.
Passo 1
Resumo do enunciado: precisamos criar um programa que leia duas strings, s1 e s2, e produza uma terceira string s3 que seja a concatenação de s1 e s2, exibindo o resultado ao usuário. O conteúdo é manipulação de strings em C, usando funções da biblioteca <string.h>.
Passo 2
Declarar variáveis: vamos precisar de três vetores de char (arrays) suficientemente grandes para armazenar s1, s2 e s3. Por segurança, escolhemos tamanhos que evitem estouro de buffer.
Passo 3
Leitura das strings: usamos fgets para ler s1 e s2 da entrada padrão (stdin), pois ela evita overflow e lê linhas completas. Após a leitura, removemos o caractere de nova linha “\n” que o fgets pode deixar no final.
Passo 4
Inicialização de s3: copiamos o conteúdo de s1 para s3 usando strcpy, que coloca o terminador ‘\0’ no fim.
Passo 5
Concatenação propriamente dita: primeiro, garantimos um espaço entre s1 e s2 com strcat(s3, " "). Em seguida, chamamos strcat(s3, s2) para anexar s2 ao final de s3.
Passo 6
Exibição do resultado: imprimimos s3 na tela com printf.
Passo 7
Estrutura geral: envolvemos tudo em uma função main, incluindo os headers <stdio.h> e <string.h>, e retornamos 0 ao final para indicar sucesso.
Resposta
#include <stdio.h>
#include <string.h>
#include <string.h>
int main() {
char s1[100], s2[100], s3[200];
char s1[100], s2[100], s3[200];
printf("Digite a string s1: ");
fgets(s1, sizeof(s1), stdin);
s1[strcspn(s1, "\n")] = '\0'; // Remove o '\n' do final
printf("Digite a string s2: ");
fgets(s2, sizeof(s2), stdin);
s2[strcspn(s2, "\n")] = '\0'; // Remove o '\n' do final
strcpy(s3, s1); // Copia s1 para s3
strcat(s3, " "); // Adiciona um espaço entre as frases
strcat(s3, s2); // Concatena s2 ao final de s3
printf("Nova string s3: %s\n", s3);
return 0;
}