Ir ao conteúdo

Função pra ordenar Strings em


jumelo

Posts recomendados

Postado

Olá pessoal, eu estou precisando de uma função para ordenar strings em C, as strings estão armazenadas na seguinte estrutura:

struct Frases{

char letra[300];

}lista_frases[100];

ou seja, podem ser até 100 frases de 300 letras cada. Eu já fiz uma função para contar o número de palavras de cada string e outra para saber quantas vezes uma certa string digitada pelo usuário apareceu em cada frase. Estou precisando da ajuda de vocês, essa última parte do programa está meio difícil. valeu!

Postado

Para comparar duas strings pode usar a função

#include <string.h>
int strcmp( const char *s1, const char *s2 );

Esta função retorna o seguinte:

0, se s1 == s2

1, se s1 > s2

-1, se s1 < s2

Exemplo:


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

void main()
  {
    printf( "%d\n", strcmp( "abcdef", "abcdef" ) );
    printf( "%d\n", strcmp( "abcdef", "abc" ) );
    printf( "%d\n", strcmp( "abc", "abcdef" ) );
    printf( "%d\n", strcmp( "abcdef", "mnopqr" ) );
    printf( "%d\n", strcmp( "mnopqr", "abcdef" ) );
  }

retorna o seguinte:

0
1
-1
-1
1

Aí é "só" implementar o algoritmo de ordenação.

Dica: para ordenar um array, pode utilizar a função qsort(..)


#include <stdlib.h>
void qsort( void *base,
                 size_t num,
                 size_t width,
                 int (*compar) ( const void *,  const void *) );

Onde "compar" é a função de comparação, que você mesmo escreve, e na qual poderia utilizar strcmp().

Abraços,

Elga.

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