Poderia dar um Help aqui

C

06/11/2016

Não tenho muita experiencia com Programacao em C.
Estou tendo que fazer essa atividade mas está dando errado .

"Faça um programa que contenha três vetores do tipo string. O primeiro vetor e o segundo devem armazenar respectivamente cinco nomes e sobrenomes digitados pelo usuário. O terceiro vetor deve receber em cada índice o nome e sobrenomes concatenados dos dois primeiros vetores. O programa deve exibir uma lista com todos os nomes completos armazenados no terceiro vetor e na frente de cada um deles a quantidade de caracteres que o mesmo possui."

Eu fiz assim, mas está dando erro.


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

int main(){
char nome[5],nome2[5],copia[6];
int i;

for(i=0;i<3;i++){
//Vai digitar 5 nomes com sobrenomes
printf("\\nDigite 5 nomes com sobrenomes: ");
//string1
gets(nome);

}
for(i=0;i<3;i++){
printf("\\nFase 2");

//Vai digitar 5 nomes com sobrenomes
printf("\\nDigite 5 nomes com sobrenomes:");
gets(nome2);

}
strcat(nome[0],nome2[0]);
strcat(nome[1],nome2[1]);
strcat(nome[2],nome2[2]);

for(i=0;i<5;i++){
strcat(copia[0],nome[0]);
strcat(copia[1],nome[1]);
strcat(copia[2],nome[2]);
printf("Nomes concatenados = %s",copia,copia[i]);

}

system("pause");
return 0;
}
Victor Cordeiro

Victor Cordeiro

Curtidas 0

Melhor post

Nathália Hirth

Nathália Hirth

07/11/2016

Olá Victor, tudo bem?
O problema do seu código é que você está declarando o vetor de strings de maneira incorreta.
O certo é usar assim:

char nome[5][100];

Onde o primeiro par de colchetes é o tamanho do vetor e o segundo é a quantidade máxima de caracteres de cada string do vetor.
Da forma que você fez, foi dito que naquela string haveria apenas uma palavra com 5 caracteres.

Segue abaixo o código que fiz para resolver o problema proposto.

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

main(){
	
	//Declaração de vetor de strings, onde o primeiro valor é o tamanho do vetor e o segundo o comprimento de cada string.
	char nome[5][100], sobrenome[5][100];
	
	printf("Digite 5 nomes:\\\\n");
	for(int i=0; i<5; i++){
		scanf("%s", nome[i]);
	}
	
	printf("Digite 5 sobrenomes:\\\\n");
	for(int i=0; i<5; i++){
		scanf("%s", sobrenome[i]);
	}
	
	//Concatenando nome e sobrenome.
	for(int i=0; i<5; i++){
		strcat(nome[i], " "); //deixa espaço entre nome e sobrenome para não ficarem grudados;
		strcat(nome[i], sobrenome[i]); //concatena nome e sobrenome;
	}
	
	printf("Os nomes completos sao:\\\\n");
	for(int i=0; i<5; i++){
		puts(nome[i]);
		printf("Tamanho do nome: %d\\\\n", strlen(nome[i])); //A função strlen é para indicar o tamanho da string passada como parâmetro.
	}	
}
GOSTEI 1
POSTAR