Aller au contenu
  • Pas encore inscrit ?

    Pourquoi ne pas vous inscrire ? C'est simple, rapide et gratuit.
    Pour en savoir plus, lisez Les avantages de l'inscription... et la Charte de Zébulon.
    De plus, les messages que vous postez en tant qu'invité restent invisibles tant qu'un modérateur ne les a pas validés. Inscrivez-vous, ce sera un gain de temps pour tout le monde, vous, les helpeurs et les modérateurs ! :wink:

Tri alphabétique en C


rickylarsen

Messages recommandés

salut tout le monde!

 

je voulais juste savoir s'il existe une fonction toute faite en langage C qui compare deux chaine de caracteres et indique si la premiere est superieure, inferieur ou egal. Tout en tenant compte des minuscules, c'est à dire que les minuscules ne soit pas misent aprés les majuscules

 

Parce que je connais strcmp() mais apparement pour elles les minuscules passent aprés!!

 

Voila un grand merci à celui qui m'evitera de faire cette fonction moi meme. Parce que j'ai dejà commencé et c'est long!

trop long!!

Lien vers le commentaire
Partager sur d’autres sites

Suffit de travailler sur des chaines temporaires que tu convertis en majuscules ou en minuscules. Genre :

function strmaj(str)
{
   int i = 0;
   int len_str = strlen(str);
   char *tmp_str = (char *)calloc(len_str + 1, sizeof(char));

   for (i = 0; i < len_str + 1; i++)
   {
       if (str[i] >= 'a' && str[i] <= 'z')
         tmp_str[i] = str[i] - 'a' + 'A';
       else
         tmp_str[i] = str[i];
   }

   return tmp_str;
}

function strcmpi(char *str1, char *str2)
{
   char *tmp_str1;
   char *tmp_str2;

  tmp_str1 = strmaj(str1);
  tmp_str2 = strmaj(tmp_str2);

   return strcmp(tmp_str1, tmp_str2);
}

 

Bon ca plante si les entrées sont incorrectes, peut-être que ca demande un peu de debuggage vu que je l'ai fait sans compilo mais ca doit ressembler à ca :P

 

Automne

Lien vers le commentaire
Partager sur d’autres sites

salut automne!

 

d'abord merci pour ta reponse!

 

j'ai donc copier coller ton code, modifier par-ci par là pour qu'il soit compilable.

et à la compilation qu'est-ce qu'il me dit : que la fonction strcmpI() a dejà été declarée et il m'envoi vers le fichier string.h

 

et en effet il existe bien une fonction strcmpi() qui fait la meme chose que strcmp sans tenir compte des majuscules!

 

merci!

 

 

tiens en passant ya personne qui sait où je pourrais trouver l'algo de la fonction strcmpi()?? parce que j'avais finalement fait une fonction qui fait la meme chose et je voulais comparer!

j'ai regardais dans string.h mais ya pas l'algo.

 

merci

Modifié par rickylarsen
Lien vers le commentaire
Partager sur d’autres sites

Tiens donc, je la connaissais pas celle-là. A mon avis, ca doit pas être trés standard, mais bon, tant que tes sources restent sur le meme systeme et que tu utilises tjrs le meme compilo, ca fonctionnera.

 

Pour l'algo, si ton compilo est livré avec les sources des library, tu peux aller voir dedans pour la source.

 

Automne

Lien vers le commentaire
Partager sur d’autres sites

  • Tonton a modifié le titre en Tri alphabétique en C

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.
Remarque : votre message nécessitera l’approbation d’un modérateur avant de pouvoir être visible.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

  • En ligne récemment   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
×
×
  • Créer...