IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

tronquer une chaine de caractères


Sujet :

C++

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2016
    Messages : 1
    Points : 1
    Points
    1
    Par défaut tronquer une chaine de caractères
    on ma demander d'écrire un programme en c++ qui supprime la première occurrence d'une chaîne de cratère OCC dans une chaîne de caractère CHAÎNE et afficher le résultat tout sa sans utiliser les fonction string stdlib ou ctype juste stdio.h

    mon programme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    #include <stdio.h>
    int main()
    {
    	char CHAINE[15];
    	char OCC[15];
    	int i, j, k, l;
     
    	printf("saisir la chaine\n");
    	scanf_s("s", CHAINE);
    	printf("saisair caractere a supprimer\n");
    	scanf_s("s", OCC);
     
    	for (i = 0; CHAINE[i] != '\0'; i++)
    	{
    		for (j = i, k = 0; OCC[k] != '\0'&& CHAINE[j] == OCC[k]; ++j, ++k)
    			;
    		if (k>0 && OCC[k] == '\0')
     
    		CHAINE[L] = CHAINE[L + k];
    		CHAINE[L] = '\0';
    		printf("    %\n", CHAINE);
    	}
    	return 0;
    }
    svp j'ai besoin d'aide

  2. #2
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 189
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 189
    Points : 17 141
    Points
    17 141
    Par défaut
    Puisque tu es en C++, tu dois utiliser <cstdio> plutot que <stdio.h>.
    C'est bien de nous montrer ton programme. Mais quel est ton problème concrêt.

    La tache consiste à trouver la premiere occurence, et recopier la chaine sauf cette occurence.

    Il suffit de garder en mémoire le début d'une potentielle occurence.
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

  3. #3
    Membre averti Avatar de RPGamer
    Homme Profil pro
    Ingénieur en systèmes embarqués
    Inscrit en
    Mars 2010
    Messages
    168
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur en systèmes embarqués

    Informations forums :
    Inscription : Mars 2010
    Messages : 168
    Points : 395
    Points
    395
    Par défaut
    on ma demander d'écrire un programme en c++ qui supprime la première occurrence d'une chaîne de cratère OCC dans une chaîne de caractère CHAÎNE et afficher le résultat tout sa sans utiliser les fonction string stdlib ou ctype juste stdio.h
    stdio.h ça n'est pas du C++, c'est du C. Tu es donc dans le mauvais forum. Je t'invite à poser ta question ici : http://www.developpez.net/forums/f18/c-cpp/c/

  4. #4
    Membre chevronné

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2013
    Messages : 610
    Points : 1 878
    Points
    1 878
    Billets dans le blog
    21
    Par défaut
    Le meilleur conseil, c'est de séparer les différentes étapes du travail à faire en fonctions différentes:

    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    size_t find_occurence(const char* chaine, const char* souschaine); // renvoie l'emplacement de la chaine auquel on trouve souschaine
    size_t str_length(const char* str); // renvoie la longueur d'une chaine
    void str_copy(char* dest, const char* src); // copie une chaîne dans une autre

    ensuite il suffit de les combiner:
    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    int offset = find_occurrence(chaine, sous-chaine);
    str_copy(chaine+offset, chaine+offset+str_length(sous-chaine);
    printf("%s", chaine);

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 965
    Points
    32 965
    Billets dans le blog
    4
    Par défaut
    T'es sur que c'est vraiment du C++ qui est demandé ?
    Parce qu'à part le proclamer, c'est uniquement du C tel que présenté là.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  6. #6
    Membre chevronné

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2013
    Messages : 610
    Points : 1 878
    Points
    1 878
    Billets dans le blog
    21
    Par défaut
    @bousk, rpgamer: c'est un peu difficile de dire: c'est du C, pas du C++. Le seul critère critère, à un certain moment, c'est si on utilise un compilateur C ou C++.

  7. #7
    Membre averti Avatar de RPGamer
    Homme Profil pro
    Ingénieur en systèmes embarqués
    Inscrit en
    Mars 2010
    Messages
    168
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur en systèmes embarqués

    Informations forums :
    Inscription : Mars 2010
    Messages : 168
    Points : 395
    Points
    395
    Par défaut
    @bousk, rpgamer: c'est un peu difficile de dire: c'est du C, pas du C++. Le seul critère critère, à un certain moment, c'est si on utilise un compilateur C ou C++.
    Pas du tout! Le C++ a une syntaxe qui lui est propre et la beaucoup de choses acceptées en C sont totalement à bannir en C++. Si C++ est bien rétro-compatible avec du code C, ça ne fait pas d'un code C un code C++.

  8. #8
    Membre chevronné

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2013
    Messages : 610
    Points : 1 878
    Points
    1 878
    Billets dans le blog
    21
    Par défaut
    Pas du tout! Le C++ a une syntaxe qui lui est propre et la beaucoup de choses acceptées en C sont totalement à bannir en C++. Si C++ est bien rétro-compatible avec du code C, ça ne fait pas d'un code C un code C++.
    Il me semble qu'à partir du moment où on respecte les exigences de la syntaxe C++ telle qu'elle est définie par le standard, on écrit bien du C++. Ce ne sera pas toujours du C++ idiomatique ou recommandé, certes. Mais il arrive qu'un code C et un code C++ soient parfaitement identiques et que la seule possibilité de savoir quel langage est utilisé soit le compilateur. Un programme d'exercice de quelques lignes avec des contraintes artificielles est d'ailleurs un bon candidat.

  9. #9
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 189
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 189
    Points : 17 141
    Points
    17 141
    Par défaut
    De toute les façons, L n'est pas défini (ca doit être l), et scanf_s est une extension de Microsoft à la bibliothèque standard.

    Ce n'est ni du C++ standard, ni du C standard.
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

Discussions similaires

  1. Tronquer une chaine de caractère
    Par proc02 dans le forum Langage
    Réponses: 2
    Dernier message: 09/05/2013, 10h09
  2. Tronquer une chaine de caractère
    Par thanks33 dans le forum Débuter
    Réponses: 3
    Dernier message: 18/06/2009, 11h36
  3. Tronquer une chaine de caractère
    Par Maluje dans le forum Langage
    Réponses: 2
    Dernier message: 18/02/2008, 17h18
  4. Tronquer une chaine de caractères
    Par Tsuna78 dans le forum Langage SQL
    Réponses: 8
    Dernier message: 17/07/2007, 12h15
  5. [RegEx] Tronquer une chaine de caractère sauf si c'est une URL.
    Par psychoBob dans le forum Langage
    Réponses: 16
    Dernier message: 03/06/2006, 12h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo