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 :

Comment concat�ner des variables char


Sujet :

C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre exp�riment�
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 167
    D�tails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 167
    Par d�faut Comment concat�ner des variables char
    Bonjour.
    Je me prends le chou depuis un tr�s tr�s bon moment.

    J'ai besoin de concat�ner des variable char en une seul.

    Un gros je d�clare des variables
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    char coords[116];
    char lat[15];
    char lon[15];
    char alt[15];
    char time[15];
    char vel[15];
    J'ai une fonction qui va donner des valeur au variable

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
     gps.getPar(lon,lat,alt,time,vel);
    Ces variables prennent des valeurs comme
    34.5678
    234.6789

    Elles ne peuvent pas avoir une longueur sup�rieure � 15, mais peuvent en avoir 10

    J'aimerais que la variable coords prenne les valeurs des autres variables et y ajouter des String "lon=", "&lat=", "&alt=","&vel=","&time=".

    J'ai donc essay� ceci

    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
     
      strcpy(coords,"long=");
      strncat(coords,lon,COORDSSIZ); //21
     
      strcat(coords,"&lat=");        //25
      strncat(coords,lat,COORDSSIZ);//40
     
      strcat(coords,"&alti=");        //46
     
      strncat(coords,alt,COORDSSIZ);  //61
     
      strcat(coords,"&time=");        //66
      strncat(coords,time,20);      //86
     
     
      strcat(coords,"&vel=");        //91
      strncat(coords,vel,COORDSSIZ);  //116
    Au final coords doit afficher ceci
    long=608.476993&lat=4613.165159&alt=345.678&vel=0.00000&time=20130714190621.000


    Le probl�me, c'est au niveau de
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    strncat(coords,alt,COORDSSIZ);  //61
    Le programme plante.
    Si comment ceci:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
      strncat(coords,alt,COORDSSIZ);  //61
     
      strcat(coords,"&time=");        //66
      strncat(coords,time,20);      //86
     
     
      strcat(coords,"&vel=");        //91
      strncat(coords,vel,COORDSSIZ);  //116
    Le programme ne plante pas.

    En r�sum�, comment puis concatener des char?

    Si je peux concat�ner les lat, lon, alt, vel, time en y ajoutant des virgules � la place des "&xxx=", je serai heuruex...

    PS; je crois que mon probl�me est li� au buffer de coords et de la longueur des caract�res dans les autres variables, et peut-�tre du terminateur des variables. Mais l� je suis largu�.


    milles merci pour votre pr�cieuse aide

  2. #2
    Membre �m�rite Avatar de orfix
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    707
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : High Tech - Produits et services t�l�com et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 707
    Par d�faut
    Bonsoir, dans ce cas pr�cis snprintf() est plus appropri�e:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    snprintf(coords, sizeof coords,"long=%s,lat=%s,alt=%s,vel=%s,time=%s",lon,lat,alt,vel,time);


    Citation Envoy� par pierrot10
    Un gros je declare des variable
    char coords[116];
    char lat[15];
    char lon[15];
    char alt[15];
    char time[15];
    char vel[15];

    <...>

    Au final coords doit afficher ceci
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    long=608.476993&lat=4613.165159&alt=345.678&vel=0.00000&time=20130714190621.000

  3. #3
    Membre exp�riment�
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 167
    D�tails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 167
    Par d�faut
    Merci pour ta reponse, mais ca crash toujours.
    Mais ta reponse est int�ressante.

    Comment puis-je etre sure que 116 de

    char coords[116];

    est juste?

  4. #4
    Membre exp�riment�
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 167
    D�tails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 167
    Par d�faut
    C'est int�ressant et ca semble avanc�

    J'ai mis cette variable ainsi
    char coords[]="";

    Mon code ne crash plus et fonction sauf que coords n'affiche rien

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
     
      snprintf(coords, sizeof coords,"lon=%s,lat=%s,alti=%s,vel=%s,time=%s",lon,lat,alt,vel,time);
     
      #ifdef DEBUG
        Serial.print(F("Coords : "));                               
        Serial.println(coords); // Ca affiche rien
      #endif

  5. #5
    Membre exp�riment� Avatar de moins1
    Homme Profil pro
    Autre
    Inscrit en
    F�vrier 2013
    Messages
    85
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : Autre
    Secteur : High Tech - Mat�riel informatique

    Informations forums :
    Inscription : F�vrier 2013
    Messages : 85
    Par d�faut
    Tu risques la segfault si tu ne donnes pas de taille. �a risque d'�crire n'importe o�.


  6. #6
    Membre �m�rite Avatar de orfix
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    707
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : High Tech - Produits et services t�l�com et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 707
    Par d�faut
    Montre-nous un code compilable reproduisant l'erreur...

Discussions similaires

  1. R�ponses: 11
    Dernier message: 11/07/2008, 14h58
  2. R�ponses: 4
    Dernier message: 26/05/2006, 17h17
  3. [VB] Comment creer des variables d'environnement
    Par keveen dans le forum VB 6 et ant�rieur
    R�ponses: 3
    Dernier message: 16/03/2006, 11h13
  4. R�ponses: 7
    Dernier message: 23/01/2006, 11h53
  5. R�ponses: 1
    Dernier message: 30/12/2005, 10h57

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