Concaténuation de chaine

Signaler
Messages postés
89
Date d'inscription
jeudi 25 octobre 2007
Statut
Membre
Dernière intervention
9 septembre 2014
-
Messages postés
1054
Date d'inscription
samedi 2 octobre 2004
Statut
Membre
Dernière intervention
9 juillet 2013
-
 je voudrais mettre au bout d'une chaine de caractere (ligne) un caractere (caractere) donc j'utilise strcat mais il me donne les erreurs suivantes :

Mon programme :

char caractere;
char ligne[200];

caractere = fgetc(in);
           
                 printf("avant :%c\n",caractere);
                       strcat(ligne , caractere);
                       printf("apres :%c\n" ,ligne);

Voici les erreurs :

In function `int main(int, char**)':
invalid conversion from `char' to `const char*'
initializing argument 2 of `char* strcat(char*, const char*)'

                       
A voir également:

5 réponses

Messages postés
1054
Date d'inscription
samedi 2 octobre 2004
Statut
Membre
Dernière intervention
9 juillet 2013
6
Salut
strcat et autre fonction str ne s'appliquent que sur les chaines de caracteres qui possede un 0 terminale.

Voici un exemple:

char caractere[2];
char ligne[200]="bonjour ";

caractere[0] = fgetc(in);
            
printf("avant :%c\n",caractere[0]);
strcat(ligne , caractere);
printf("apres :%s\n" ,ligne);      //%s car ligne est une chaine de caractere

A+
Mon site internet : http://pistol.petesampras.free.fr
Messages postés
89
Date d'inscription
jeudi 25 octobre 2007
Statut
Membre
Dernière intervention
9 septembre 2014

Voici mon deuxieme probleme sur cette ligne :




if((i>17) && (i<23) && (caractere==32)){}   

In function `int main(int, char**)':
error: ISO C++ forbids comparison between pointer and integer
Messages postés
1054
Date d'inscription
samedi 2 octobre 2004
Statut
Membre
Dernière intervention
9 juillet 2013
6
Et comment tu as initialise ta variable caractere?

Si c'est
char caractere[2];
tu dois mettre if(caractere[0]==32)

A+
Mon site internet : http://pistol.petesampras.free.fr
Messages postés
482
Date d'inscription
vendredi 26 août 2005
Statut
Membre
Dernière intervention
5 décembre 2009

Bonjour,

Il ne faut pas oublier le 0 binaire terminateur de chaîne de caractères dans le tableau "caractere" !

char caractere[2]; <-- les 2 octets contiennent n'importe quoi !
char ligne[200]="bonjour ";

caractere[0] = fgetc(in);
caractere[1] = 0; // terminateur de la chaîne

Jean-François
Messages postés
1054
Date d'inscription
samedi 2 octobre 2004
Statut
Membre
Dernière intervention
9 juillet 2013
6
oui bien sur!!!

Merci jfrancois de m'avoir corrigé.

A+
Mon site internet : http://pistol.petesampras.free.fr