Convertion d'une chaine de mjuscule en minuscule et vice versa

Contenu du snippet

Voilà, j'avais codé cette fonction pour moi et je me suis aperçu qu'il n'y en avait pas ici, donc, je vous la présente. Je pense que les librairies telles que MFC ou Borland fournissent des convertions de ce type, mais cette fonction a le mérite d'utiliser seulement la lib standard. (je n'ai pas utilisé le toupper et tolower de stdio.h)

Source / Exemple :


#include <stdio.h>

char *min_maj(char *string)
{
    int c, i, len;
    char buf[2];
    len = strlen(string)+1;
    char *pStr = (char *)malloc(len);
    if(pStr == NULL)
        return;
    memset(pStr, 0, len);
    for(i=0; i <= len-1; i++)
    {
        c = string[i];
        if((c <= 122) && (c >= 97))
            c -= 32;
        sprintf(buf, "%c", c);
        strcat(pStr, buf);
    }
    return pStr;
}

char *maj_min(char *string)
{
    int c, i, len;
    char buf[2];
    len = strlen(string)+1;
    char *pStr = (char *)malloc(len);
    if(pStr == NULL)
        return;
    memset(pStr, 0, len);
    for(i=0; i <= len-1; i++)
    {
        c = string[i];
        if((c <= 90) && (c >= 65))
            c += 32;
        sprintf(buf, "%c", c);
        strcat(pStr, buf);
    }
    return pStr;
}

int main(int argc, char *argv[])
{
    char *pString1 = min_maj("abcdef");
    char *pString2 = maj_min("ABCDEF");
    printf("%s\n", pString1);
    printf("%s\n", pString2);
    free(pString1);
    free(pString2);
    system("pause");
    return 0;
}

Conclusion :


Voilà les 2 fonctions avec une petite démo de son utilisation dans main()...

Merci BruNews pour la petite modif sur le forum ;)

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.