Question bête, mais ca me prend la tête,
Comment ajouter un caractere à une chaîne de caractère.
MerçiCode:
1
2
3
4
5
6 char mon_car; char* tab; //traitement: allocation de tab...etc ... tab=tab+mon_car; //j'ai essayer ca mais ca va pas quoi lol
Version imprimable
Question bête, mais ca me prend la tête,
Comment ajouter un caractere à une chaîne de caractère.
MerçiCode:
1
2
3
4
5
6 char mon_car; char* tab; //traitement: allocation de tab...etc ... tab=tab+mon_car; //j'ai essayer ca mais ca va pas quoi lol
Il faut utiliser strcat. Mais il faut que la mémoire pour tab soit allouée ( sinon seg fault).
strcat ne vas pas, regarde:Citation:
Envoyé par hegros
et j'ai:Code:
1
2
3
4 char* data, char *buf; //les deux alloués... ;) strcat(data, buf[pos]);
Citation:
60 C:\Documents and Settings\Root\Mes documents\XXXXX\Créations\C\adapter.c [Warning] passing arg 2 of `strcat' makes pointer from integer without a cast
sprintf().Citation:
Envoyé par Goundy
Ah oui un caractere.
Il te suffit d'utiliser l'indice du tableau.
EDIT : sprintf en effet. J'oublie les fonctions C moi :oCode:Tab[Position] ='c';
Non. strcat() ajoute une chaine, pas un caractère.Citation:
Envoyé par hegros
Deux solutions
:arrow: celle de hegros (avec une chaîne de 1 caractère Emmanuel).
:arrow: buf[strlen(buf) + 1] = 0; buf[strlen(buf)] = 'a';
Attention, à l'ordre, si tu intervertis les deux instructions, tu risques le segfault !!
[edit] j'avais oublié le sprintf :oops: [/edit]
Merçi, c'est ce qu'il me fallaitCitation:
Envoyé par Emmanuel Delahaye
et merçi a tous ;)
Le monsieur, il a dit 'caractère', pas 'chaine'Citation:
Envoyé par Trap D
bonjour, je ne sais pas si il faut creer un nouveau sujet ou si je peu repondre ici
mais j ai sensiblement le meme pb et je n arrive pas a le resoudre
concretement, j ai un pointeur char et je voudrais tout decaler de 1;
voici mon code, si vous pouvez m aider ...
bien sur j ai une seg fault :lol:Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 #include<stdio.h> #include<stdlib.h> #include<string.h> void main(){ char *p; int i; char x; p=(char*)malloc(12*sizeof(char)); p=("jean jean"); i=0; while(i!=10){ p[i]=p[i+1]; ++i; } }
Créer un nouveau sujet...Citation:
Envoyé par banania
Ben oui, tu cherches à modifier un chaine constante...Citation:
bien sur j ai une seg fault
Pose des questions si tu ne comprends pas...Code:
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<stdlib.h> #include<string.h> int main(void) { int size = 12; char *p = malloc(size); if (p != NULL) { int i = 0; strcpy (p, "jean jean"); printf ("'%s'\n", p); while (i < size - 2) { p[i] = p[i + 1]; ++i; } printf ("'%s'\n", p); free (p), p = NULL; } return 0; }