<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[[Fonction utilitaire] explode (ouioui, comme en php ;))]]></title><description><![CDATA[<p dir="auto">&lt;p&gt;Bonjour à tous,&lt;/p&gt;<br />
&lt;p&gt;Je vais vous fournir une fonction "explode" qui vous permettra de découper une chaine de caractères grâce à un délimiteur.&lt;/p&gt;<br />
&lt;p&gt; &lt;/p&gt;<br />
&lt;p&gt;&lt;strong&gt;I - Manuel de "explode":&lt;/strong&gt;&lt;/p&gt;<br />
&lt;p&gt;&lt;strong&gt;NOM:&lt;/strong&gt;&lt;/p&gt;<br />
&lt;p&gt;explode - découpage de chaine de caractères.&lt;/p&gt;<br />
&lt;p&gt; &lt;/p&gt;<br />
&lt;p&gt;&lt;strong&gt;SYNOPSYS:&lt;/strong&gt;&lt;/p&gt;<br />
&lt;p&gt;char **explode(char *chaine, char <em>delimiteur);&lt;/p&gt;<br />
&lt;p&gt; &lt;/p&gt;<br />
&lt;p&gt;&lt;strong&gt;DESCRIPTION:&lt;/strong&gt;&lt;/p&gt;<br />
&lt;p&gt;La fonction &lt;strong&gt;explode&lt;/strong&gt; vous permettera de découper la chaine "&lt;em&gt;chaine&lt;/em&gt;" grâce au délimiteur "&lt;em&gt;delimiteur&lt;/em&gt;". Plusieurs délimiteurs peuvent être utilisés en les mettant l'un à côté de l'autre (ex: " \t.,") ou un mot complet (ex: "coucou").&lt;/p&gt;<br />
&lt;p&gt;Attention: la chaine "&lt;em&gt;chaine&lt;/em&gt;" sera modifiée après l'utilisation de &lt;strong&gt;explode&lt;/strong&gt;. Si vous souhaitez la garder, pensez à la stocker! (ex: strdump).&lt;/p&gt;<br />
&lt;p&gt; &lt;/p&gt;<br />
&lt;p&gt;&lt;strong&gt;VALEUR RENVOYÉE:&lt;/strong&gt;&lt;/p&gt;<br />
&lt;p&gt;La fonction &lt;strong&gt;explode&lt;/strong&gt; renverra un tableau de chaines de caractères contenant, dans chacune des cases, une des itérations trouvées.&lt;/p&gt;<br />
&lt;p&gt;Si aucune itérations n'a été trouvée, &lt;strong&gt;explode &lt;/strong&gt;renverra une version dumpée de la chaine &lt;em&gt;chaine&lt;/em&gt;.&lt;/p&gt;<br />
&lt;p&gt;Si une erreur survient, &lt;strong&gt;explode&lt;/strong&gt; renverra &lt;strong&gt;NULL.&lt;/strong&gt;&lt;/p&gt;<br />
&lt;p&gt; &lt;/p&gt;<br />
&lt;p&gt;&lt;strong&gt;VOIR AUSSI:&lt;/strong&gt;&lt;/p&gt;<br />
&lt;p&gt;&lt;a href="<a href="http://manpagesfr.free.fr/man/man3/strtok.3.html" rel="nofollow ugc">http://manpagesfr.free.fr/man/man3/strtok.3.html</a>" rel="external nofollow"&gt;strtok(3)&lt;/a&gt;&lt;/p&gt;<br />
&lt;p&gt; &lt;/p&gt;<br />
&lt;p&gt;&lt;strong&gt;COPYRIGHT:&lt;/strong&gt;&lt;/p&gt;<br />
&lt;p&gt;La fonction &lt;strong&gt;explode&lt;/strong&gt; a été crée par AlexMog ainsi que cette page de manuel.&lt;/p&gt;<br />
&lt;p&gt; &lt;/p&gt;<br />
&lt;p&gt;&lt;strong&gt;II - Le code:&lt;/strong&gt;&lt;/p&gt;<br />
&lt;pre class="ipsCode prettyprint"&gt;<br />
/</em><br />
** Code created by AlexMog<br />
** Created the 10/04/2014 at 05:42pm.<br />
** Last update by AlexMog the 10/04/2014 at 05:56pm.<br />
** Please, leave the copyright.<br />
*/<br />
#include &lt;string.h&gt;</p>
<p dir="auto">char **explode(char *chaine, char *delimiter)<br />
{<br />
char **ret;<br />
char *word;<br />
int size;</p>
<pre><code>ret = NULL;
word = strtok(chaine, delimiter);
size = 0;
while (word != NULL)
{
	ret = realloc(ret, (size + 2) * sizeof(char*));
	if (ret == NULL)
		return (NULL);
	strcpy(ret[size], word);
	word = strtok(NULL, delimiter);
	++size;
}
if (ret != NULL)
	ret[size] = NULL;
return (ret);
</code></pre>
<p dir="auto">}<br />
&lt;/pre&gt;<br />
&lt;p&gt;J'espère que vous ferrez bon usage de ce code <img src="https://melinyel.net/assets/plugins/nodebb-plugin-emoji/emoji/android/1f642.png?v=d0a000c383a" class="not-responsive emoji emoji-android emoji--slightly_smiling_face" style="height:23px;width:auto;vertical-align:middle" title=":)" alt="🙂" /> .&lt;/p&gt;<br />
&lt;p&gt; &lt;/p&gt;<br />
&lt;p&gt;N'hésitez pas à me faire vos retours en cas de bugs.&lt;/p&gt;<br />
&lt;p&gt; &lt;/p&gt;<br />
&lt;p&gt;Enjoy programming <img src="https://melinyel.net/assets/plugins/nodebb-plugin-emoji/emoji/android/1f609.png?v=d0a000c383a" class="not-responsive emoji emoji-android emoji--wink" style="height:23px;width:auto;vertical-align:middle" title=";)" alt="😉" /> &lt;/p&gt;<br />
&lt;p&gt; &lt;/p&gt;<br />
&lt;p&gt;Cordialement,&lt;/p&gt;<br />
&lt;p&gt;AlexMog.&lt;/p&gt;</p>
]]></description><link>https://melinyel.net/topic/485/fonction-utilitaire-explode-ouioui-comme-en-php</link><generator>RSS for Node</generator><lastBuildDate>Wed, 02 Sep 2026 04:50:28 GMT</lastBuildDate><atom:link href="https://melinyel.net/topic/485.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 10 Apr 2014 15:57:52 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to [Fonction utilitaire] explode (ouioui, comme en php ;)) on Thu, 17 Apr 2014 08:21:35 GMT]]></title><description><![CDATA[<p dir="auto">&lt;p&gt;Merci de ce tutoriel, bien joué mon Alex. <img src="https://melinyel.net/assets/plugins/nodebb-plugin-emoji/emoji/android/1f609.png?v=d0a000c383a" class="not-responsive emoji emoji-android emoji--wink" style="height:23px;width:auto;vertical-align:middle" title=";)" alt="😉" /> &lt;/p&gt;<br />
&lt;p&gt;+1 Rep.&lt;/p&gt;</p>
]]></description><link>https://melinyel.net/post/5666</link><guid isPermaLink="true">https://melinyel.net/post/5666</guid><dc:creator><![CDATA[Azad]]></dc:creator><pubDate>Thu, 17 Apr 2014 08:21:35 GMT</pubDate></item><item><title><![CDATA[Reply to [Fonction utilitaire] explode (ouioui, comme en php ;)) on Fri, 11 Apr 2014 19:31:50 GMT]]></title><description><![CDATA[<p dir="auto">&lt;p&gt;Voici:&lt;/p&gt;<br />
&lt;pre class="ipsCode prettyprint"&gt;<br />
/*<br />
** Code created by AlexMog<br />
** Created the 10/04/2014 at 05:42pm.<br />
** Last update by AlexMog the 10/04/2014 at 05:56pm.<br />
** Please, leave the copyright.<br />
*/<br />
#include &lt;string.h&gt;</p>
<p dir="auto">char **explode(char *chaine, char *delimiter)<br />
{<br />
// Variable de retours<br />
char **ret;<br />
// Variable pour écupérer un mot<br />
char *word;<br />
// Taille totale des mots lus<br />
int size;</p>
<pre><code>// On initialise les variables (pour éviter tout conflits et valeurs aléatoires)
ret = NULL;
// On stoque le premier mot trouvé avant le délimiteur (voir man strtok)
word = strtok(chaine, delimiter);
size = 0;
// Début de la boucle, tant qu'on a un mot, on continue (je n'ai pas mis de doWhile à cause du 2nd argument de strtok qui doit être mis à NULL (lire le man de strtok)
while (word != NULL)
{
	// On alloue la place naisséssaire en mémoire pour stocker (size + 2) cases (donc, on ajoute une nouvelle case dans notre tableau à chaque tour de boucle (c'est ce qu'on appelle un tableau dynamique, je ferais un cours dessus)
	ret = realloc(ret, (size + 2) * sizeof(char*));
	// D'après le man de realloc, celui-ci retourne NULL en cas d'erreur, je vérifie donc qu'il n'y a eu aucune erreur
	if (ret == NULL)
		return (NULL);
	// Je copie le contenue de "word" (donc du mot trouvé) dans la case actuelle du tableau
	strcpy(ret[size], word);
	// Je récupère le prochain mot
	word = strtok(NULL, delimiter);
	// J'incrémente la taille du tableau
	++size;
}
// Je vérifie si ret est NULL
if (ret != NULL)
	// Si il ne l'est pas, c'est que le tableau a été remplis , j'ajoute donc un NULL à la dernière case du tableau, pour définir la fin de celui-ci
	// (Ce qui explique le size + 2 au niveau du realloc 
	ret[size] = NULL;
// Enfin, on renvois le tableau alloué (ne pas oublier de le free après utilisation )
return (ret);
</code></pre>
<p dir="auto">}<br />
&lt;/pre&gt;<br />
&lt;p&gt;J'espère avoir assez bien expliqué ^^&lt;/p&gt;</p>
]]></description><link>https://melinyel.net/post/5315</link><guid isPermaLink="true">https://melinyel.net/post/5315</guid><dc:creator><![CDATA[AlexMog]]></dc:creator><pubDate>Fri, 11 Apr 2014 19:31:50 GMT</pubDate></item><item><title><![CDATA[Reply to [Fonction utilitaire] explode (ouioui, comme en php ;)) on Thu, 10 Apr 2014 17:41:16 GMT]]></title><description><![CDATA[<p dir="auto">&lt;p&gt;Salut, pourrais tu expliquer un peu plus ton code?&lt;/p&gt;</p>
]]></description><link>https://melinyel.net/post/5265</link><guid isPermaLink="true">https://melinyel.net/post/5265</guid><dc:creator><![CDATA[Alemort]]></dc:creator><pubDate>Thu, 10 Apr 2014 17:41:16 GMT</pubDate></item></channel></rss>