Bonjour à vous tous!
S'il vous plaît, je me demandais si on voulait faire une fonction void concat(mot 1,mot 2,mot 3) sans utiliser la bibliothèque string au fait le type mot est un tableau de caractère
à quoi cela va ressembler ?
Merci![]()
Bonjour à vous tous!
S'il vous plaît, je me demandais si on voulait faire une fonction void concat(mot 1,mot 2,mot 3) sans utiliser la bibliothèque string au fait le type mot est un tableau de caractère
à quoi cela va ressembler ?
Merci![]()
Bonjour,
Tu va devoir faire un malloc ou realloc pour ta chaîne destinatrice.
Ensuite, il s'agira de faire deux copies consécutives :
Information :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 char * resultat; char * source1; char * source2; //allocation de resultat while( *resultat++ = *source1++ ); //implémentation possible de strcpy. resultat--; // on va réécrire sur le '\0' final while(*resultat++ = *source2++ );
- l'opérateur = renvoie la valeur deux deuxième opérande (ici *source1++ et *source2++ ;
- l'opérateur ++ postfixe ( source1++) enregistre la valeur de la variable, l'incrémente puis retourne la valeur enregistrée ie source1++ retourne l'ancienne valeur de source1;
- le caractère de fin de chaîne est '\0' qui est 0x00 et qui vaut false.
Après essaye de voir ce qu'il se passe avec un exemple simple pour comprendre comment cela fonctionne^^
Bonjour,
Juste pour préciser l'allocation comment tu peux la faire car après la méthode de Neckara est bien (peut être un peu compliqué pour une débutante... mais bon ya les explications avec).
Tu dois calculer le nombre de caractères de tes chaines à concaténer les additionner et rajouter 1 pour le '\0'.
Si tu n'as pas le droit au bibliothèque de string ça ressemblera à ça :
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 int i = 0; int size = 0; while (source1[i] != '\0') i++; size = i; i = 0; while (source2[i] != '\0') i++; size = size + i + 1; //le "+ 1" est pour le caractère '\0' // Voila t'as ton bon nombre de caractères à malloc.
Neckara, DrDarko Merci <3
bonjour
Pour affecter une chaîne caractère par caractère à une chaîne vide j'utilise ca
après j'affiche le w[i];
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 i=0; w[i]==u[i]; i++;
qu'est ce qui ne vas pas
![]()
== sert à faire des comparaisons.
Pour faire des affectations, il faut utiliser =.
Partager