Por enquanto ele esta me retornando as duas strings concatenadas, porém ao fazer a contagem de caracteres, ele só conta da primeira string e não do resultado das duas concatenações.
#include <stdio.h>
int tamanhoString(char string[]){
int numCarac = 0;
while(string[numCarac] != '\0'){
++numCarac;
}
--numCarac;
return numCarac;
}
//Você deverá modificar apenas a função abaixo, você
//não pode modificar a assinatura dela
int concatena(char* s1, char* s2, char* sres, int* espacos){
//preciso descobrir o tamanho da string s1 e s2 para passar pra função de baixo
//Ta retornando certinho o tamanho das strings, o problema não está aqui
int t1 = tamanhoString(s1);
int t2 = tamanhoString(s2);
printf("A primeira string possui %i caracteres e a segunda %i caracteres\n", t1,t2);//Pra verificar o tamanho das strings
//Pra concatenar
int i, j;
for(i = 0; i < t1; ++i){
sres[i] = s1[i]; //--> Escreve em sres o s1 até i < t1 ==> T1 é o tamanho da string s1(palavra1)
}
for(j = 0; j < t2; ++j){
sres[t1 + j] = s2[j];//--> Era pra escrever logo depois, pois escreve em sres o s2 pulando a quantidade de t1
}
}
//Funcao para imprimir uma string, NÃO MODIFIQUE
void print_string(char* str){
int k = 0;
while(str[k] != '\0'){
printf("%c", str[k]);
k++;
}
printf("\n"
}
//NÂO MODIFIQUE a main
int main(int argc, char * argv[]){
char frase1[40];//--> Passar a frase pra esse vetor
char frase2[40];//--> Passar a frase pra esse vetor
char fraseResultado[80];//--> frase concatenada
int tamResultado;
int espacos;
//lendo a entrada
fgets(frase1, 40, stdin);
fgets(frase2, 40, stdin);
tamResultado = concatena(frase1, frase2, fraseResultado, &espacos);
print_string(fraseResultado); //Printa a fraseresultado, vindo da sres
printf("String com %d caracteres e %d espacos.\n", tamResultado, espacos);
return 0;
}
}