Retourner aux forums || Retourner au forum Programmation.c
Programmation.c : remplacant standard pour strlwr
Posté par serge_kara () le 27 septembre 2005ouala, 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).
Pas d'équivalent...
... 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
#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
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



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.