copie de chaine et changements de caractere en C
Répondre à la discussion
Affichage des résultats 1 à 6 sur 6

copie de chaine et changements de caractere en C



  1. #1
    gdm

    Cool copie de chaine et changements de caractere en C


    ------

    Salut,
    le programme que j'essaie de faire est le suivant:
    dans un premier temps: je définie une fonction qui est capable de changer une minuscule en majuscule :

    Code:
    char transforme_caractere_majuscule (char n)
    {	
    	if((n >='a' )&& (n <= 'z'))
    		 return(n -'a'+'A');
    	 else
    		 return(n);
    	 
    
     }
    puis je dois faire une fonction void copie_chaine_majuscule (char[], char[]);
    qui doit copier une chaine dans une autre en changeant les minuscules en majuscules et en utilisant la fonction précèdente!

    je sais faire la fonction de copie :
    une fonction qui va posséder la ligne :
    while(s2[i] = s1[i]) i++;
    ou en truc du genre

    mais je ne vois aps commment intégrer ma fonction transforme_caractere_majuscule a celle-ci car elle ne prend que 1 caractere a la fois !

    ma solution: j'ai modifié transforme_caractere_majuscule comme ceci:
    Code:
    char transforme_caractere_majuscule (char n[],int p)
    {	
    	if((n[p] >='a' )&& (n[p] <= 'z'))
    		 return(n[p] = n[p] -'a'+'A');
    	 else
    		 return(n[p]);
    	 
    
     }
    
    void copie_chaine_majuscule(char u[], charv[]){
    int i,l = sterlen(u);
    for(i=0; i<l-1; i++)
    {
         u[i] = transforme_caractere_majuscule (u,i);
         u[i] = v[i];
    }
    ect....
    je ne sais pas si cela est correct (en plus mon compilateur fait des siens)

    J'aimerais avoir une proposition qui utiliserait la fonction "transforme_caractere_majuscul e " initiale et de maniere plus propre
    merci

    -----
    Dernière modification par yoda1234 ; 18/10/2009 à 11h03.
    GDM

  2. #2
    inviteba9bce0d

    Re : copie de chaine et changements de caractere en C

    Quelque chose comme çà?

    Code:
    char transforme_caractere_majuscule (char n)
    {	
    	if((n >='a' )&& (n <= 'z'))
    		 return(n -'a'+'A');
    	 else
    		 return(n);
    	 
    
     }
    
    
    void copie_chaine_majuscule(char depart[], char arrive[])
    {
         int i,l = sterlen(depart);
    
         for(i=0; i<l-1; i++)
         {
              arrive[i] = transforme_caractere_majuscule (depart[i]);
         }
    }

  3. #3
    gdm

    Re : copie de chaine et changements de caractere en C

    bon bah, vu que c'était ma deuxième solution dont j'&tais pas du tout sur , je vais reprendre celle ci .merci
    GDM

  4. #4
    sitalgo

    Re : copie de chaine et changements de caractere en C

    B'jour,

    Ou encore :
    Code:
    char transforme_caractere_majuscule (char n)
    {	
    	n=n+((n >='a')&& (n <= 'z'))*32;
    	return(n);
    }
    Je mettrais strlen au lieu de sterlen.
    Et c'est si court que je n'en ferais pas une fonction séparée.
    Mais si t'as l'gosier, Qu'une armure d'acier, Matelasse. Brassens, Le bistrot.

  5. A voir en vidéo sur Futura
  6. #5
    gdm

    Re : copie de chaine et changements de caractere en C

    euh oui strlen , en fait je fais une fonction expres car c'est le but vu que je debute en c. merci
    GDM

  7. #6
    polo974

    Re : copie de chaine et changements de caractere en C

    Pas besoin de strlen en gardant l'idée de base...
    (il faut que out pointe sur une zone mémoire valide)

    Code:
    /* comme avant */
    char transforme_caractere_majuscule (char n)
    {    
        if((n >='a' )&& (n <= 'z'))
             return(n -'a'+'A');
         else
             return(n);
    }
     
     /* meme idee que le while avec l'init de i en prime */
    void copie_chaine_majuscule (char out[], char in[])
    {
        int i;
        for (i=0; out[i] = transforme_caractere_majuscule (in[i]); i++)
            ;
    }
    Le for balaye chaque caractère de la chaîne et s'arrête quand un '\0' passe par là (comme le faisait le while)...
    Jusqu'ici tout va bien...

Discussions similaires

  1. chercher une chaine de caractère dans un texte en Langage C
    Par invitee5fedd72 dans le forum Programmation et langages, Algorithmique
    Réponses: 17
    Dernier message: 10/12/2010, 00h01
  2. Chaine de caractère C++
    Par invitee5fedd72 dans le forum Logiciel - Software - Open Source
    Réponses: 3
    Dernier message: 06/03/2008, 20h29
  3. Fonction retournant une chaine de caractère
    Par youril dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 05/09/2007, 21h28
  4. [C++] Exploiter une chaîne de caractère lue au clavier
    Par Gwyddon dans le forum Logiciel - Software - Open Source
    Réponses: 5
    Dernier message: 24/06/2006, 23h47
Découvrez nos comparatifs produits sur l'informatique et les technologies.