Ir ao conteúdo
  • Cadastre-se

Matriz de strings 20x3


andtoz

Posts recomendados

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.

Link para o comentário
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

Link para o comentário
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

Link para o comentário
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]);

}

Link para o comentário
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

Link para o comentário
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

Link para o comentário
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

Link para o comentário
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

Link para o comentário
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:

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

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...