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 :

Concatenation avec entier [Débutant(e)]


Sujet :

C

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 44
    Par défaut Concatenation avec entier
    Bonjour,

    En bref :

    J'ai un tableau de chaines de caractères :

    char** tab

    et un entier i

    Je veux concatener l'entier avec une chaine de caractère du tableau et stocker le resultat dans le tableau.


    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    tab[1] = "bla bla"
    i = 1
     
    tab[2] = concat(tab[1],i);
     
    printf("Resultat : %c",tab[2]);
    Et que cela m'affiche : bla bla 1



    Voila merci

  2. #2
    Membre éprouvé Avatar de psyphi
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    119
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Allemagne

    Informations professionnelles :
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2006
    Messages : 119
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    char buffer[100];
    char chaine1 = "blabla";
    int i = 3;
    snprintf(buffer, sizeof buffer, "%s%d", chaine1, i);
    fprintf(stdout, "%s", buffer);
    http://www.linux-kheops.com/doc/man/...ntf.3.txt.html

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 44
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    'snprintf': identifier not found
    J'ai pourtant bien mis la librairie stdio.h

  4. #4
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par lutin06
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    'snprintf': identifier not found
    J'ai pourtant bien mis la librairie stdio.h
    C'est une fonction C99. En C90, tu peux utiliser sprintf(). Attention aux débordements. Bien faire ses calculs de dimensions.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 44
    Par défaut
    J'ai essayé avec sprintf, il a fallu enlevé le sizeof, mais ca me sort n'importe quoi, pas du tout ce que j'ai demandé.

    Qqun pourrait m'expliquer simplement svp ?

    merci

  6. #6
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    [QUOTE=psyphi]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    char buffer[100];
    char chaine1 = "blabla";
    int i = 3;
    snprintf(buffer, sizeof buffer, "%s%d", chaine1, i);
    fprintf(stdout, "%s", buffer);
    C'est pas bien de ne pas tester son code avant de le poster...

  7. #7
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par lutin06
    J'ai essayé avec sprintf, il a fallu enlevé le sizeof, mais ca me sort n'importe quoi, pas du tout ce que j'ai demandé.

    Qqun pourrait m'expliquer simplement svp ?

    merci
    Le code posté était buggé. ceci fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    #include <stdio.h>
     
    int main (void)
    {
       char buffer[100];
       char const *chaine1 = "blabla";
       int i = 3;
       sprintf (buffer, "%s%d", chaine1, i);
       puts (buffer);
     
       return 0;
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    blabla3
     
    Press ENTER to continue.

  8. #8
    Membre éprouvé Avatar de psyphi
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    119
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Allemagne

    Informations professionnelles :
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2006
    Messages : 119
    Par défaut
    Désolé j'ai oublié '*' pour le pointeur

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 44
    Par défaut
    Merci pour vos soluces , ca marche mais j'ai un autre problème sur lequel je bloque depuis maintenant environ 1h

    sachant que prec est un tableau de chaine de caractères et buffer un char[1000]

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    			for ( int j=1 ; liste[i][j] != -1 ; j++ )
    			{
    				if(!lu[liste[i][j]]) 
    				{
    					enfiler(liste[i][j], file1);
    					sprintf(buffer, "%s, %d", prec[i], i);
    					prec[liste[i][j]] = buffer;
    					lu[liste[i][j]] = 1;
    				}					
    			}
    En fait, au final je devrais avoir prec[1] different de prec[2] etc... or la j'ai prec[1]=prec[2] , je ne comprends pas pourquoi, en fait j'aimerai bien ecrasé a chaque fois le buffer , mais je ne sais pas comment faire !




    EDIT : En gros je viens de faire un test, et mettons que prec[3] = 1
    , quand je fais prec[5] = 1 2, ca change prec[3] qui passe aussi a 1 2, alors que je voudrais qu'il reste a 1

    Voila j'espere que je suis clair

  10. #10
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Tu as déjà créé une discussion relative à ce problème: http://www.developpez.net/forums/sho...d.php?t=279959

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

Discussions similaires

  1. [Oracle] concatenation avec SQL
    Par miniseb dans le forum Langage SQL
    Réponses: 3
    Dernier message: 25/08/2006, 18h13
  2. Probleme concatenation avec postgresql
    Par JUSTIN Loïc dans le forum PostgreSQL
    Réponses: 10
    Dernier message: 24/08/2006, 15h49
  3. Concatenation avec NULL
    Par stos dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 18/08/2006, 20h33
  4. [C#][1.1]Concatenation avec un point
    Par Laeticia dans le forum Windows Forms
    Réponses: 2
    Dernier message: 31/05/2006, 15h36
  5. update du colonne avec entier incrementé
    Par superfly dans le forum Langage SQL
    Réponses: 3
    Dernier message: 04/05/2004, 17h26

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