Ir ao conteúdo
  • Cadastre-se

C como juntar dois vetores de string.


Visitante

Posts recomendados

Não estou querendo que fação o código,só queria uma ajuda com a lógica.

Enunciado da questão.

Ler duas matrizes do tipo vetor para elementos do tipo literal (string). A
matriz A deve possuir 12 nomes femininos e a matriz B 11 nomes
masculinos. Construir uma matriz C, sendo esta a junção das matrizes A
e B. Desta forma, C deve ter a capacidade de armazenar 23 elementos
do tipo literal. Apresentar os nomes da matriz C em ordem crescente.

Link para o comentário
Compartilhar em outros sites

@Diogo alves12    depois que você colocar os nomes do vetor A e vetor B no vetor C , você pode usar a função  strcoll  para verificar qual nome vem antes do outro, então você pode usar o método bublesort da mesma forma como você faria em um vetor de inteiro, você coloca dois loop  e dentro desses dois loop  você coloca um código parecido com esse  :

if(strcoll(vet_C[i],vet_C[j])>0){

poste o código que você conseguir fazer para podermos ver como está e em que podemos ajudar .

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Consegui desse jeito.

#include <stdio.h>
#include<string.h>
int main(void)
{
	char va[5][100], vb[5][100],vec[15][1000];
	int i;
	for(i = 0; i < 5; i++)
	{
		printf("Informe os nomes do vetor A :");
		scanf("%s", va[i]);
	}
	printf("\n\n");
	for(i = 0; i < 5; i++)
	{
		printf("Informe os nomes do vetor B :");
		scanf("%s", vb[i]);
	}
	for(i=0;i<5;i++)
	{
		strcat(vec[i],va[i]);
		strcat(vec[i],"\n");
		strcat(vec[i],vb[i]);
	}
	printf("\n\n");
	for(i=0;i<10;i++)
	{
		printf("%s\n",vce[i]);
	}
}

 

adicionado 3 minutos depois

Agora não estou conseguindo colocar em ordem decrescente.

Link para o comentário
Compartilhar em outros sites

@Diogo alves12     esse strcat não ficou bom, apesar de que você conseguiu inserir os nomes no vet C, mas na hora de ordenar esses caracteres \n causam erros, melhor usar o comando strcpy, então seu código com algumas modificações ficaria assim  :

#include <stdio.h>
#include<string.h>
int main(void)
{
	char va[5][30], vb[5][30],vec[15][30],aux[30];
	int i,j,k=0;
	for(i = 0; i < 5; i++)
	{
		printf("Informe o %d nomes do vetor A : ",i+1);
		scanf("%s",& va[i]);
	}
	printf("\n\n");
	for(i = 0; i < 5; i++)
	{
		printf("Informe o %d nomes do vetor B : ",i+1);
		scanf("%s",& vb[i]);
	}
	printf("\n");
	for(i=0;i<5;i++)
	{
	    strcpy(vec[k  ],va[i]);
	    strcpy(vec[k+1],vb[i]);
	    k+=2;
	}
	for(i=0;i<9;i++){
            for(j=i+1;j<10;j++){
                if(strcoll(vec[i],vec[j])>0){
                    strcpy(aux,vec[i]);
                    strcpy(vec[i],vec[j]);
                    strcpy(vec[j],aux);
                }
            }
        }
	printf("Os Nomes Em Ordem Crescente\n\n");
	for(i=0;i<10;i++)
	{
		printf("%d -> %s\n",i+1,vec[i]);
	}
}

 

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...