Ir ao conteúdo
  • Cadastre-se
andtoz

Matriz de strings 20x3

Recommended Posts

Boa noite, estou com dúvida em como fazer um programa :

2-Crie uma matriz bidimensional do tipo caractere (20x3), onde você deverá armazenar 20 informações sobre endereço de uma pessoa, essas informações são nome, cidade e estado. Faça um programa que forneça o armazenamento dessas informações, e após esse armazenamento solicite para o usuário qual dos 3 campos ele quer que seja feito uma classificação alfabética. Fazer a classificação de acordo com o campo solicitado e apresentar uma listagem dessa matriz classificada.

Sou iniciante e estou meio(inteiro) perdido.Se alguém puder me ajudar agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que o enunciado do problema não está certo.

20 o que? 3 o que?

Uma matriz de strings de 20x3, é uma matriz de 20 linhas por 3 caracteres, e eu acho que em 3 caracteres você não consegue armazenar estas informações.

Quando se trabalha com banco de dados, a forma mais prática de armazenar informações, é através de estruturas de dados (STRUCTS). Mas, como você está começando, acredito que você nem tenha visto esse assunto ainda, não é?

Bixo! Se isso for trabalho de escola, o professor pegou pesado!

Dá pra fazer com matriz tb, mas é bem mais trabalhoso.

Primeiro de tudo é saber como uma string é armazenada em C. Depois, saber os conceitos de matrizes bi-dimensionais (vetores de strings), e depois, juntar os dois para fazer matrizes de strings.

Coisa chata, ehehehehehehe

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites
Acho que o enunciado do problema não está certo.

20 o que? 3 o que?

Uma matriz de strings de 20x3, é uma matriz de 20 linhas por 3 caracteres, e eu acho que em 3 caracteres você não consegue armazenar estas informações.

...

Na verdade, uma matriz de strings de 20x3 é uma matriz de 20 linhas por 3 colunas, e não caracteres...

E acredito que o programa quer que na primeira coluna fique armazenado o nome, na segunda a cidade e na terceira o estado... Se a noite eu tiver mais tempo eu tento postar uma explicaçao de como eu acho que esse exercicio pode ser resolvido =)

Até mais...

Tiago Massita

Compartilhar este post


Link para o post
Compartilhar em outros sites
Na verdade, uma matriz de strings de 20x3 é uma matriz de 20 linhas por 3 colunas, e não caracteres...

E acredito que o programa quer que na primeira coluna fique armazenado o nome, na segunda a cidade e na terceira o estado... Se a noite eu tiver mais tempo eu tento postar uma explicaçao de como eu acho que esse exercicio pode ser resolvido =)

Até mais...

Tiago Massita

Exatamente Tiago, o exercício é para armazenar 20 nomes na 1ªcoluna,20 cidades na 2ª e 20 estados na 3ª.E ainda tenho que pedir pro usuário qual busca ele deseja fazer.Cara tô no 1º semestre e o professor já lança uma dessas.Tô perdidão.Se puderem me ajudar agradeço.O programa colocamos para rodar no devc++.Abraço.

o q fiz até agora é:

#include<stdio.h>

#include<conio.h>

#include<string.h>

#include<stdlib.h>

int main()

{

int a,b,c;

char strings_nome[20];

char strings_cidade[20];

char strings_estado[20];

for (a=0;a<19;a++)

{

printf("Digite o nome: \n",a);

scanf("%s",strings_nome[a]);

}

for (b=0;b<19;b++)

{

printf("Digite a cidade: \n",B);

scanf("%s",strings_cidade);

}

for (c=0;c<19;c++)

{

printf("Digite o estado: \n",c);

scanf("%s",strings_estado[c]);

}

Compartilhar este post


Link para o post
Compartilhar em outros sites
Na verdade, uma matriz de strings de 20x3 é uma matriz de 20 linhas por 3 colunas, e não caracteres...

Não. Na verdade, uma matriz de STRINGS de 20x3, é uma matriz de 20 linhas x 3 CARACTERES (sem contar a terminação). Conforme eu havia dito antes.

Não existem "colunas" em strings, e sim, caracteres.

C trata diferente strings e matrizes de inteiros.

Acho que você se confundiu.

[]'s

Editado por Maurício2006

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mauricio, acredito que entendi o que você quis dizer, porém em uma matriz de strings você deve declarar o numero de linhas, o numero de colunas e a quantidade de caracteres... Por isso se voce declarar [20][3] vai ser linhas e caracteres... ou algo assim...

Compartilhar este post


Link para o post
Compartilhar em outros sites

andtoz.

Qual o máximo de caracteres que suas strings precisam ter?

Massita.

Se eu declarar isso daqui:

char mat_string [ 10 ] [ 50 ];

Eu estou declarando uma matriz de strings de 10 linhas x 49 caracteres (mais o terminador da string NULL, o que dá uma declaração de 50 caracteres, ou, bytes).

Cada elemento dessa matriz, ou, linha, pode ter de 0 caracteres até o máximo de 49 caracteres.

Não tem colunas em strings.

[]'s

Editado por Maurício2006

Compartilhar este post


Link para o post
Compartilhar em outros sites
andtoz.

Qual o máximo de caracteres que suas strings precisam ter?

Massita.

Se eu declarar isso daqui:

char mat_string [ 10 ] [ 50 ];

Eu estou declarando uma matriz de strings de 10 linhas x 49 caracteres (mais o terminador da string NULL, o que dá uma declaração de 50 caracteres, ou, bytes).

Cada elemento dessa matriz, ou, linha, pode ter de 0 caracteres até o máximo de 49 caracteres.

Não tem colunas em strings.

[]'s

Pessoal esse meu professor é crica,hein?Deu nó na cabeça de todos.Mas é o seguinte, tenho que criar uma tabela que guarde 20 nomes de sei lá 40 caracteres,20 cidades com 40 caracteres também e 20 estados com 40 caracteres também.Feito o armazenamento devo perguntar ao usuário qual dos 3 campos ele deseja acessar e apresentá-lo em ordem alfabética.Creio que seja isso.Agradeço a atenção de todos até o momento.Obrigado:D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Salve, andtoz.

A declaração das suas variáveis pode ser assim:

char nome [ 20 ] [ 41 ];    // 41 elementos, pra guardar o terminador; 40 caracteres usáveis
char cidade [ 20 ] [ 41 ];
char estado [ 20 ] [ 41 ];

Pra capturar, você pode usar SCANF ou GETS:

for ( indice = 0; indice < 20; indice++ )
{
printf ("Entre com o nome, cidade e estado\n");
gets ( nome [ indice ] );
gets ( cidade [ indice ] );
gets ( estado [ indice ] );
}

Depois de capturar os dados, você pode pedir a opção de ordenação:

printf ("Escolha a ordenacao\n");
printf ("1 - Nome\n");
printf ("2 - Cidade\n");
printf ("3 - Estado\n");
getchar ( comando );

E fazer a ordenação através de um SWITCH, p. ex:

switch ( comando )
{
case 1:
// função ou comandos para ordenação pelos nomes
break;

case 2:
// função ou comandos para ordenação pelas cidades
break;

case 3:
// função ou comandos para ordenação pelos estados
break;
}

As funções/comandos de ordenação, ficam por sua conta.

É só uma ideia. Espero que ajude.

Mexer com strings é um saco! você vai precisar estudar os protótipos da biblioteca STRING.H

Lá, tem funções prontas que comparam strings.

Boa sorte.

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites
Salve, andtoz.

A declaração das suas variáveis pode ser assim:

char nome [ 20 ] [ 41 ];    // 41 elementos, pra guardar o terminador; 40 caracteres usáveis
char cidade [ 20 ] [ 41 ];
char estado [ 20 ] [ 41 ];

Pra capturar, você pode usar SCANF ou GETS:

for ( indice = 0; indice < 20; indice++ )
{
printf ("Entre com o nome, cidade e estado\n");
gets ( nome [ indice ] );
gets ( cidade [ indice ] );
gets ( estado [ indice ] );
}

Depois de capturar os dados, você pode pedir a opção de ordenação:

printf ("Escolha a ordenacao\n");
printf ("1 - Nome\n");
printf ("2 - Cidade\n");
printf ("3 - Estado\n");
getchar ( comando );

E fazer a ordenação através de um SWITCH, p. ex:

switch ( comando )
{
case 1:
// função ou comandos para ordenação pelos nomes
break;

case 2:
// função ou comandos para ordenação pelas cidades
break;

case 3:
// função ou comandos para ordenação pelos estados
break;
}

As funções/comandos de ordenação, ficam por sua conta.

É só uma ideia. Espero que ajude.

Mexer com strings é um saco! você vai precisar estudar os protótipos da biblioteca STRING.H

Lá, tem funções prontas que comparam strings.

Boa sorte.

[]'s

valeu galera, desculpa a amolação.Vou tentar da foma que vocês me passaram.Se conseguir que ele rode postarei para vocês(kkkkkkkkkkkkkkkkkk).Abraço.:cool:

Compartilhar este post


Link para o post
Compartilhar em outros sites
Mauricio, declara a matriz como se fosse tridimensional... Acho que você entendeu o que eu quis fazer... =)

ah, tá... Realmente! Agora eu entendí o que você estava querendo dizer! :D:-BEER

Tb... Era só falar: -Faz uma matriz tridimensional! :D:D

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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 publicações 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

×