C => convertir un char[] en char*
Friday_XIII
-
loupius -
loupius -
Bonjour,
je dois réaliser un petit programme en C, et mon problème est comment transformer un char[] en char*,ou alors concaténer un char* et un char (strcat, ne fonctionnant pas) ....
pourriez vous m'aider s'il vous plait
merci d'avance
Friday
je dois réaliser un petit programme en C, et mon problème est comment transformer un char[] en char*,ou alors concaténer un char* et un char (strcat, ne fonctionnant pas) ....
pourriez vous m'aider s'il vous plait
merci d'avance
Friday
A voir également:
- Char * to char
- Qwerty to azerty - Guide
- Reboot to bootloader - Guide
- Video to video - Télécharger - Conversion & Codecs
- Mb to mo - Forum Matériel & Système
- Majuscule to minuscule - Guide
5 réponses
Comment, c'est quoi le problème car un
char* ... et un char ... [] c'est la même chose.
Qu'est ce que tu essai de faire qui te pose problème ?
char* ... et un char ... [] c'est la même chose.
Qu'est ce que tu essai de faire qui te pose problème ?
Salut,
lami20j@debian:~/trash/ccm_c$ cat ccm49_char_pchar.c
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main()
{
char s1[]="azerty";
char *s2="uiop";
char *s3;
s3=(char*)malloc(strlen(s1)+strlen(s2)+1);
strcat(s3,s1);
printf("s1 = %s\ts2=%s\ts3=%s\n",s1,s2,s3);
strcat(s3,s2);
printf("s1 = %s\ts2=%s\ts3=%s\n",s1,s2,s3);
return 0;
}
lami20j@debian:~/trash/ccm_c$ gcc ccm49_char_pchar.c
lami20j@debian:~/trash/ccm_c$ ./a.out
s1 = azerty s2=uiop s3=azerty
s1 = azerty s2=uiop s3=azertyuiop
c'est bien ce qu'il me semblait, mais j'étais pas sûr XD
en fait je travail sur la communication de deux processus par l'intermédiaire d'un pipe
le pere écrit
le fils lit (char par char)
et doit appeler une fonction avec ce qu'a lut le fils, mais ça merde un peu :s
et donc je peux concaténer un char* et un char[] avec strcat alors ?
en fait je travail sur la communication de deux processus par l'intermédiaire d'un pipe
le pere écrit
le fils lit (char par char)
et doit appeler une fonction avec ce qu'a lut le fils, mais ça merde un peu :s
et donc je peux concaténer un char* et un char[] avec strcat alors ?
Re,
char s1[] = "aaaaa" et char *s2="bbbbb" désignent un tableau de caractères.
Le nom d'un tableau en C est assimilé à le notion de pointeur et représente l'adresse du 1er élément du tableau.
Le prototype de la fonction strcat est
P.S.
En revanche il y a une différence entre les deux définitions
char s1[]="aaaa" - s1 est un tableau de taille ajustée pour contenir la suite de caractères "aaaa" et le caractère '\0' qui sont affectés lors de l'initialisation. Il occupera toujours le même espace mémoire
char *s2="bbbb" - s2 est un pointeur initialiser de pointer sur une chaîne constante de caractères. Le pointeur pourra pointé sur n'importe quel autre tableau de caractères
char s1[] = "aaaaa" et char *s2="bbbbb" désignent un tableau de caractères.
Le nom d'un tableau en C est assimilé à le notion de pointeur et représente l'adresse du 1er élément du tableau.
Le prototype de la fonction strcat est
char *strcat(char *dest, const char *src);Donc on peut utiliser les noms de tableaux en tant que pointeurs.
P.S.
En revanche il y a une différence entre les deux définitions
char s1[]="aaaa" - s1 est un tableau de taille ajustée pour contenir la suite de caractères "aaaa" et le caractère '\0' qui sont affectés lors de l'initialisation. Il occupera toujours le même espace mémoire
char *s2="bbbb" - s2 est un pointeur initialiser de pointer sur une chaîne constante de caractères. Le pointeur pourra pointé sur n'importe quel autre tableau de caractères
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
merci pour vos expilcations sur la différence entre un char* et un char[].
Mais maintenant un autre problème se pose ....
/*creation d'une relation pere fils à l'aide d'un fork()*/
//dans le pere
char[10] tab;
int i=0;
while(i<10){
tab[i]='a';
}
//j'ai donc un tableau remplit de lettre a
//je souhaite l'écrire dans un tube, j'ai fais ça :
write(tube[1],$tab,10);
//dans le fils
char* cle;
read(tube[0],&cle,10);
//mais ceci ne marche pas ....
//avez vous trouvé l'erreur ?
Mais maintenant un autre problème se pose ....
/*creation d'une relation pere fils à l'aide d'un fork()*/
//dans le pere
char[10] tab;
int i=0;
while(i<10){
tab[i]='a';
}
//j'ai donc un tableau remplit de lettre a
//je souhaite l'écrire dans un tube, j'ai fais ça :
write(tube[1],$tab,10);
//dans le fils
char* cle;
read(tube[0],&cle,10);
//mais ceci ne marche pas ....
//avez vous trouvé l'erreur ?