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.
# Pas d'équivalent...
Posté par JaguarWan . Évalué à 5.
#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 . Évalué à 3.
#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 . Évalué à 3.
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.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.