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 :

chaine inverse (classique débutant) [FAQ]


Sujet :

C++

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 124
    Points : 80
    Points
    80
    Par défaut chaine inverse (classique débutant)
    lol
    Un classique pour débutant .
    Objectif inverser une chaine de caractère
    ex le mot "chat" renverra "tahc"

    Mon proggy fonctionne mais il me faut remplacer la fonction gets ?
    J'aie essayé fgets sans succés et cette dernière fonction ne me parait pas adéquate .Pouvez-vous corriger merci ?

    NB : Existe-t-il une focntion toute faite permettant d'inverser une chaine de caractères en C++

    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>
    #include<string>
     
    int main (void)
     
    #define taille 100
     
    {
        int i=0 ;
     
        char tab1[taille] ;// cree un tableau de taille n 
     
        printf("Tapez une chaine de caractères au plus %d caractere :\n",taille);//affiche la chaîne de caractères à l'écran 
     
        fgets(tab1);//avec gets le programme marche mais le man de linux me deconseille de l'utiliser .Ne fonctionne pas avec fgets car il manque des arguments
     
     
        for (i=strlen(tab1);i>=0;i--)
        {
            putchar(tab1[i]);
        }
     
     
    }
    Pour aider

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    /usr/include/stdio.h: In function `int main()':
    /usr/include/stdio.h:528: error: too few arguments to function `char*
       fgets(char*, int, FILE*)'
    chaineinverse.cpp:19: error: at this point in file

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Salut

    Tout ça c'est du C, en C++ on utilise std::cout, std::string, etc... Pour saisir une chaîne c'est avec std::cin, ou std::getline si tu veux pouvoir mettre des espaces dedans.

    La fonction toute faite :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #include <string>
    #include <algorithm>
     
    std::string s = "chat";
     
    // On inverse directement la chaine
    std::reverse(s.begin(), s.end());
     
    // OU BIEN
     
    // On construit une nouvelle chaine inversée
    std::string s2(s.rbegin(), s.rend());

  3. #3
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 751
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 751
    Points : 10 671
    Points
    10 671
    Billets dans le blog
    3
    Par défaut
    La FAQ t'expliquera pourquoi il ne faut pas utiliser les char mais std::string.
    http://c.developpez.com/faq/cpp/?pag...GS_type_chaine
    http://c.developpez.com/faq/cpp/?pag...ng_et_string_h

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 124
    Points : 80
    Points
    80
    Par défaut
    Ok merci !

Discussions similaires

  1. Réponses: 10
    Dernier message: 28/02/2007, 00h00
  2. [Débutant]Encodage d'une chaine de caractères
    Par Crazyblinkgirl dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 03/08/2004, 16h47
  3. [Débutant][Token] découper une chaine
    Par _Eric_ dans le forum Langage
    Réponses: 14
    Dernier message: 06/07/2004, 10h36
  4. Réponses: 3
    Dernier message: 10/06/2004, 22h34
  5. Réponses: 3
    Dernier message: 17/12/2003, 11h26

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