Demande d'aide langage c
Répondre à la discussion
Affichage des résultats 1 à 6 sur 6

Demande d'aide langage c



  1. #1
    kev2325

    Demande d'aide langage c


    ------

    Bonjour quelqu'un pourrais m'aider a résoudre ce code en langage c s'il vous plait .

    1) A l’aide du "squelette" de la fonction "main" fournit, définissez l’en-tête et le corps de la (ou des) fonction(s) permettant à l’utilisateur du programme de modifier une chaîne de caractères originale (ici ch1) avec les fonctionnalités suivantes :

    - Toutes les apparitions au sein de la chaîne originale, d’une sous-chaîne constituée de 2 caractères devront être éliminées à la seule condition que cette sous-chaîne soit directement précédée et suivie d’un caractère de valeur identique dans la chaîne originale.
    Dans tous les autres cas, la sous-chaîne recherchée sera remplacée par une autre sous- chaîne comportant également 2 caractères.
    La sous-chaîne recherchée et la sous-chaîne de remplacement sont des valeurs initialisées au clavier par l’utilisateur du programme.

    -Le nombre de suppressions et de remplacements seront également récupérés et affichés.

    Bien vouloir Insérez les appels de vos fonctions et les variables (si nécessaire) au sein de la fonction "main".




    Exemple :

    Chaîne originale saisie : OUtvOUvlUOmOUyOUyOUp
    Sous-chaîne recherchée saisie : OU
    Sous-chaîne de remplacement saisie : MA
    Chaîne originale modifiée : MAtvvlUOmMAyyMAp
    Nombre de remplacements : 3
    Nombre de suppressions : 2

    ATTENTION : Pour ce code, la seule fonction de la librairie C que vous pouvez utiliser est la fonction strlen.

    essayez un peu de commenter le programme si possible

    -----

  2. #2
    Jack
    Modérateur

    Re : demande d'aide langage c

    Citation Envoyé par kev2325 Voir le message
    Bonjour quelqu'un pourrais m'aider a résoudre ce code en langage c s'il vous plait .
    Oui, le forum est là pour çà.
    Cependant on attend de voir ce que tu as déjà essayé conformément aux principes en vigueur.

  3. #3
    kev2325

    Re : demande d'aide langage c

    J'ai pu écrire ceci vos avis s'il vous plaît .
    Je suis coincé a ce niveau .je parviens pas a terminé avec la suppression des caractères .
    Code:
     #include <stdio.h>
    #include <stdlib.h>
    #define N 30
    
    void InitialiseSousChaine2caract(char *);
    void Supprime (char *, char *);
    void Remplace (char *, char *, char *);
    
    int main(int argc, char *argv[]) {
    
    char ch1 [N], aremplacerousupprimer[3], remplacement[3];
    
    printf("Entrez la chaine originale contenant maximum %d caracteres : \n\n", N - 1);
    gets (ch1);
    printf("Initiallisation de la sous chaine recherchee : \n");
    InitialiseSousChaine2caract(aremplacerousupprimer);
    puts(aremplacerousupprimer);
    printf("Initiallisation de la sous chaine de remplacement : \n");
    InitialiseSousChaine2caract(remplacement);
    puts(remplacement);
    Supprime (ch1, aremplacerousupprimer);
    Remplace (ch1, aremplacerousupprimer, remplacement);
    printf("Voici la chaine originale apres remplacement(s) eventuel(s))\n" );
    printf(" et suppression(s) eventuelle(s) :\n  ");
    puts(ch1);
    
    
    system("PAUSE");
    return 0;
    }
    
    void InitialiseSousChaine2caract(char * souschaine)
    {
    	int lgsouschaine;
    	do{
    		printf("Entrez une chaine de caractere constituee de 2 caracteres\n");
    		gets(souschaine);
    		lgsouschaine = strlen(souschaine);
    	  }
        while ( lgsouschaine != 2);
    }
    
    
    void Supprime (char * chaine, char * asupprimer)
    {
       int cptsuppression = 0, ilect = 1, iecrit = 1; 
       
        while(*(chaine + ilect) !='\0')	
        {
      	  if ( (*(chaine + ilect) == *asupprimer) && (*(chaine + ilect + 1) == *(asupprimer + 1)) 
             &&
    Dernière modification par Jack ; 29/12/2020 à 12h50. Motif: Balises code

  4. #4
    Jack
    Modérateur

    Re : demande d'aide langage c

    Merci de mettre les balises code (et de respecter une indentation correcte) comme c'est à nouveau précisé dans les consignes de ce forum (il serait bon que tu les lises).

    Plusieurs remarques:
    - tu as l'air d'apprécier la syntaxe pointeur, mais franchement celle des tableaux est tout de même plus lisible.
    - fgets est nettement préférable à gets: imagine que tu saisisses plus de 2 caractères pour les chaines à remplacer ou de remplacement. Dans ce cas c'est la grosse cata. fgets, elle, permet d'éviter ce genre de débordement de du tableau.
    - pour ta fonction, il serait peut-être préférable de décomposer le problème:
    * une fonction de recherche qui retourne la position si la sous-chaine est trouvée ou -1 par exemple dans le cas contraire
    * une fonction qui détecte si elle est encadrée par le même caractère
    * une fonction de suppression

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

    Re : demande d'aide langage c

    ok je vois merci
    Dernière modification par kev2325 ; 29/12/2020 à 13h13. Motif: j'ai oublié le merci

  7. #6
    Jack
    Modérateur

    Re : demande d'aide langage c

    Attention à fgets toutefois car elle mémorise le saut de ligne en fin de chaine. Mais il il facile de le faire "sauter".

Discussions similaires

  1. Demande de conseils pour projet. Questions sur langage informatique adéquate.
    Par Kyusuke dans le forum Programmation et langages, Algorithmique
    Réponses: 14
    Dernier message: 26/12/2017, 07h42
  2. Aide au langage C+
    Par ilaine25 dans le forum Programmation et langages, Algorithmique
    Réponses: 5
    Dernier message: 17/04/2016, 14h24
  3. demande d'aide en langage C
    Par yann85 dans le forum Programmation et langages, Algorithmique
    Réponses: 17
    Dernier message: 15/09/2011, 13h53
  4. [langage c]Demande aide écriture fonction
    Par invite8b421ec7 dans le forum Programmation et langages, Algorithmique
    Réponses: 12
    Dernier message: 27/04/2011, 08h49
  5. Aide Langage C/C++
    Par invite55fe29e6 dans le forum Électronique
    Réponses: 2
    Dernier message: 29/05/2007, 19h14