Retourner aux forums || Retourner au forum Programmation.c

Programmation.c : remplacant standard pour strlwr

Posté par serge_kara () le 27 septembre 2005
0
Bonjour tout le monde!
ouala, au taff je m'occupe de porter une lib de windows a linux.
Rien de bien mechant pour l'instant, si ce n'est un appel a la fonction strlwr, qui comme son nom l'indique presque, convertit un char* en char* lower case.

Et evidemment, cette tabernacle de fonction n'est pas ANSI!!
donc pas definie dans la libc.

Et donc j'en arrive a ma question : est ce qu'il ya un equivalent standard (ie qui compile aussi sous windows sans ajouter de libs) ou est ce qu'il faut que je me farcisse une fonction de conversion ?
Et si oui lequel?

je sais, c'est pas grand chose a ecrire vu que ca prend que des char* , mais bon si ya moyen de reutiliser quelque chose existant, autant le faire, ca m'evitera de rajouter du code etc.

> Lire le message (3 commentaires, moyenne: 3,7).  

Cette discussion est archivée, il n'est plus possible de laisser des commentaires.

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.

Pas d'équivalent...

Posté par JaguarWan () le 27/09/2005 à 12:51. (lien). Évalué à 5.

... dans la bibliothèque standard, mais si tu ne travailles que sur des chaînes ANSI, ceci devrait faire l'affaire :

#include <ctype.h>

void strlwr(char *string)
{
while ( (*string = tolower(*string ++)) );
}

L'avantage par de tolower() par rapport à un bidouillage des valeurs ASCII c'est qu'il gère la locale.

Si tu utilises des wchar_t, remplace ctype.h par wctype.h et utilises towlower().

strlwr

Posté par lukeg () le 27/09/2005 à 12:56. (lien). Évalué à 3.

#include <ctype.h>
#include <string.h>

char * strlwr(char * str)
{
int i;
int lg = strlen(str);
for(i=0;i<lg;i++)
str[i]=tolower(str[i]);

return str;
}


naivement je dirais que c bon, et que c pas trop long a faire, donc pourquoi ne pas le rajouter, ca ne mangera pas grand chose

merci

Posté par serge_kara () le 27/09/2005 à 14:55. (lien). Évalué à 3.

pour les deux reponses.

J'ai encore 2 -3 trucs a faire avant de porter ce code, je vous tiens au courant, mais ca a effectivement l'air de correspondre pile poile a ce que je veux.

Revenir en haut de page || Retourner aux forums || Retourner au forum Programmation.c