Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème de caractère dans la console

lors de l'execution la console afiche des emoji

    13 avril 2022 à 9:51:08

    Bonjour,

    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, &current);
    			//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

    • Partager sur Facebook
    • Partager sur Twitter

    Ferme la porte de tes envie aux demotivateurs. Ce qui te depasse, ne depasse pas les autre.

      13 avril 2022 à 11:50:29

      Pour que nous puissions voir ton code il faut éditer ton message et utiliser le bouton [ </> ] pour l'insérer.
      • Partager sur Facebook
      • Partager sur Twitter

      En recherche d'emploi.

        13 avril 2022 à 11:58:44

        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 13 avril 2022 à 11:59:37

        • Partager sur Facebook
        • Partager sur Twitter
          13 avril 2022 à 12:32:47

          Hermonie #LFD a écrit:

          [...]
          actuellement je réalise un SiteWeb en langage C.
          [...]

          • Partager sur Facebook
          • Partager sur Twitter
            13 avril 2022 à 17:16:01

            Dalfab a écrit:

            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 ^^

            • Partager sur Facebook
            • Partager sur Twitter

            Ferme la porte de tes envie aux demotivateurs. Ce qui te depasse, ne depasse pas les autre.

              13 avril 2022 à 17:44:52

              Hello,

              La ligne 27 est complètment foireuse:

              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

              • Partager sur Facebook
              • Partager sur Twitter
                13 avril 2022 à 17:53:25

                >>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 
                • Partager sur Facebook
                • Partager sur Twitter
                  14 avril 2022 à 0:13:33

                  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.

                  -
                  Edité par Dlks 14 avril 2022 à 0:17:03

                  • Partager sur Facebook
                  • Partager sur Twitter

                  Problème de caractère dans la console

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  • Editeur
                  • Markdown