j'ai un petit problèmes avec mon code en langage C, j'ai commencé la langage C il y as de cela pas longtemp(en début d'anné), actuellement je réalise un SiteWeb en langage C.
Mon problèmes vient que j'essait de recoder la fonction PHP explode, mais j'y arrive pas. la console 'lors de la compilation un "attention" et l'ors l'execution du programme elle affiche des emoji après avoir detecter le cractere.
pourtant mon code m'à lére bien.
void split(const char* string, const char* caractere)
{
char current = 0; // initialise une variable qui vas contenir du contenue à chaque tout
// "c" est pour caractere
int cCurrent = 0; // initialise les nombre de tour
int cYes = 0;
char chaineAct[255][7];
char* tempChaine;
// printf("d : %s \n", string);
do
{
current = string[cCurrent]; // mise en variable du cractere
//printf("%c : %d\n",string[cCurrent], strcmp(&string[cCurrent], caractere));
if( string[cCurrent] == *caractere) // si un nombre positive est retourner, ce là est bon
{
printf("\nTrouver\n");
//strcat(tempChaine, "\0");
cYes++;
}
else
{
strcat(tempChaine, ¤t);
//printf("%c == %c\n", current, *caractere);
//printf(": %d\n", strlen(chaineAct[cYes]));
}
cCurrent++;
}
while(current != '\0');
printf("%s\n", tempChaine);
cCurrent--;
}
Es-que ce la peut-etre lier à une erreur de memoir ?
- Edité par Hermonie #LFD 13 avril 2022 à 17:14:17
Ferme la porte de tes envie aux demotivateurs. Ce qui te depasse, ne depasse pas les autre.
Bonjour, le implicit déclaration signifie surement que ta fonction ou plutot son prototype n'est connu au moment où tu l'appelles
S'il est dans un fichier C séparé cree un.h avec son prototype que tu inclueras dans ton main ou s'il est dans le main monte son prototype en haut ou la fonction elle même
Ensuite les caractères affichés comme ça doivent sûrement etre soit des caractères spéciaux soit des caractères accentué style "é"
Pour que nous puissions voir ton code il faut éditer ton message et utiliser le bouton [ </> ] pour l'insérer.
voilà
zvheer a écrit:
Bonjour, le implicit déclaration signifie surement que ta fonction ou plutot son prototype n'est connu au moment où tu l'appelles
S'il est dans un fichier C séparé cree un.h avec son prototype que tu inclueras dans ton main ou s'il est dans le main monte son prototype en haut ou la fonction elle même
Ensuite les caractères affichés comme ça doivent sûrement etre soit des caractères spéciaux soit des caractères accentué style "é"
- Edité par zvheer il y a environ 5 heures
"LOLO/LALA/POPO" avec pour split "/"
White Crow a écrit:
Hermonie #LFD a écrit:
[...] actuellement je réalise un SiteWeb en langage C. [...]
Oui, j'aime beaucoup ce genre de choses x) j'apprend mieu comme ça
Ferme la porte de tes envie aux demotivateurs. Ce qui te depasse, ne depasse pas les autre.
1) tu n'as pas réservé de mémoire pour tmpChaine (avec malloc(), calloc() ou realloc()). Tu ne peux donc as l'employer pour faire des strcat()
2) current est un caractère, pas une chaine de caractères. Quand tu en donnes l'adresse à strcat(), c'est un pointeur sur un caractère que tu donnes, par un pointeur sur une chaine de caractères. Cette dernière est une suite de caractères contigus en mémoire, terminée par le caractère '\0', ce que n'est pas un caractère.
- Edité par edgarjacobs 13 avril 2022 à 17:47:16
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent
>>Oui, j'aime beaucoup ce genre de choses x) j'apprend mieu comme ça
c'est meme plus de l'apprentissage là hehe
je rejoins l'avis du dessus et j'ajoute que pour moi il y a un soucis des le prototype si tu veux simuler explode comme tu l'as dis au dessus tu as besoin d'une chaine et du caractère separateur hors là tu récupère deux chaines
Php ne connaît pas d'équivalent du type char : https://www.php.net/manual/en/language.types.intro.php, d'ailleurs, la fonction explode dans ce langage prend un séparateur de type string : https://www.php.net/manual/en/function.explode.php ... cela peut expliquer des confusions. De fait la fonction explode de Php divise une chaîne en utilisant le séparateur qui peut comporter plusieurs caractères. Si on veut répliquer cela, on peut utiliser la fonction standard strstr() pour rechercher une sous-chaîne séparatrice.
Une fonction qui prendrait un char comme caractère séparateur ressemblerait à la fonction standard strtok() (qui prend aussi une chaîne, mais composée de char séparateurs alternatifs).
Enfin, si on veut vraiment répliquer explode de Php, cette fonction (qui dans le code posté est de type void) devrait retourner un tableau de chaînes de caractères, avec une mémoire dynamiquement allouée par la fonction... et cela, c'est un poil plus difficile pour un débutant.
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Ferme la porte de tes envie aux demotivateurs. Ce qui te depasse, ne depasse pas les autre.
En recherche d'emploi.
yasakani no magatama
Ferme la porte de tes envie aux demotivateurs. Ce qui te depasse, ne depasse pas les autre.
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent
yasakani no magatama
yasakani no magatama