<Fiz isso, mas esta imprimindo errado. Alguém pode me ajudar ?
2- Crie uma função que recebe duas strings (pode ser alocação estática ou dinâmica) e crie uma nova string. Essa nova string deve conter as duas strings juntas (concatenadas), mas separadas por um espaço.
Por exemplo:
String 1: "Pedro" (string de tamanho 5, mais o '\0')
String 2: "Henrique" (string de tamanho 8, mais o '\0')
String de saída: "Pedro Henrique" (string de tamanho 14, mais o '\0', lembrando que o espaço também é um caractere).
Use malloc ou calloc e não esqueça de usar o free no final do programa.
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void concatenar_string (char *c, char str1[],int t1,char str2[],int t2,char str3[] ){
for(int i =0;i<t1;i++){
str3[i] = str1[i];
}
for(int j = 0 ;j<t2;j++){
str3[t1+j] = str2[j];
}
}
int main(){
int n,*m;
int remove,h;
printf("digite o tamanho do vetor:\n");
scanf("%d",&n);
m = (int*)malloc(sizeof (int)*n);
for(int i = 0;i<n;i++){
m[i]=i+1;
}
printf("digite o valor N que sera removido :\n");
scanf("%d",&remove);
for(int j=0;j<remove;j++){
}
vet_alocado(m,n,remove);
printf("\n\n");
char palavra1[6];
char palavra2[9];
char final[15];
char *c;
char r;
printf("digite o primeiro nome:\n");
c = (char *)malloc(sizeof(char)*r);
for(int j = 0;j<6!='\0';j++){
scanf("%c",&palavra1[j]);
}
printf("digite o sobrenome:\n");
for(int t = 0;t<9!='\0';t++){
scanf("%c",&palavra2[t]);
}
for(int i = 0;i<15;i++){
concatenar_string(c,palavra1,6,palavra2,9,final);
printf("%c",final[i]);
}
free(c);
}
>