Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : découper une chaine de caractére dans un seul char [ Windows / Autre ] (logant83)

mardi 19 décembre 2006 à 20:53:35 | découper une chaine de caractére dans un seul char

logant83

Bonsoir, voila enfaite j'aimerai découper une chaine de caractères et placer chacun
de mots dans un char pour par exemple pouvoir y avoir accés simplement en fesant
monchar[0] , monchar[1]

ou cas ou sa ne serait pas clair je vous montre a quoi je pense

exemple j'ai la phrase : "Je suis un garcon"

j'aimerai pouvoir placer chaque mot dans le char de facon que monchar[0] correspondent
à "Je" et monchar[1] correspondent à "suis" et ainsi de suite.

Avez-vous une idée ?

Bonne soirée.


mardi 19 décembre 2006 à 21:03:51 | Re : découper une chaine de caractére dans un seul char

Bling 182

Bonjour,

Essaie voir avec char * strsep (char **dest, const char *delim);

La phrase à découper est dans dest, et à chaque appel strsep renvera le "mot" suivant, et NULL une fois arrivé en fin de chaine.

Par contre, ta chaine originale (dest) est modifiée à chaque appel de cette fonction...

mardi 19 décembre 2006 à 21:31:30 | Re : découper une chaine de caractére dans un seul char

SAKingdom

Membre Club
Mettre une chaine dans un char, non c'est impossible. Dans un tableau à double dimention, oui c'est possible. J'ai pas trop le temps de faire quelque chose de très optimisé ni très sécuritaire mais voici un exemple:

char buffer[256] = "Salut a tous";
char tab[32][32]; // <- 32 mots de chacun 32 char
int i = 0, j = 0;

while(1)
{
     int k = 0;
    while(buffer[i] != ' ' && buffer[i] != '\n' && buffer[i])
    {
        tab[j][k] = buffer[i];
        i++; k++;
    }
    tab[j][k] = 0;
    if(!buffer[i]) break;
    i++; j++;
}

tab[0] contien "Salut" tab[1] contien "a" et tab[2] contien "tous"
   

C++ (@++)


mardi 19 décembre 2006 à 21:46:32 | Re : découper une chaine de caractére dans un seul char

SAKingdom

Membre Club
Petite précision:
char tab[32][32]; // <- 32 mots de chacun 31 char + caractère de fin de chaine ('\0' ou 0)

C++ (@++)


mercredi 20 décembre 2006 à 15:42:06 | Re : découper une chaine de caractére dans un seul char

bonjour__

il faut utiliser une fonction strtok(char*,const char*);

par exemple :

char *nom="salut a tous";
char *ptr;

ptr=strtok(nom," ");
nom=strtok(NULL," ");

nom => "a tous"
ptr => "salut"


mercredi 20 décembre 2006 à 16:07:19 | Re : découper une chaine de caractére dans un seul char

SAKingdom

Membre Club
Réponse acceptée !
Mouais. Peut-être pas la meilleur des solutions. Il va faloir doubler la mémoire du buffer:

char buffer[256] = "salut a tous";
char *ptr[3];

ptr[0] = strtok(buffer," ");
ptr[1] = strtok(0, " ");
ptr[2] = strtok(0, "\0");

C++ (@++)


mercredi 20 décembre 2006 à 19:08:41 | Re : découper une chaine de caractére dans un seul char

logant83

merci bcp a tous pour vos code mais SAKingdom je comprend pas ou son stocké les mot de la phrase.. il sont dans ptr[0] ptr[1] ptr[2] et ainsi de suite ?

mercredi 20 décembre 2006 à 20:15:37 | Re : découper une chaine de caractére dans un seul char

logant83

Escuse moi j'ai compris enfaite.

merci pour ton aide et l'aide des autres j'ai beaucoup mieu compris
tous cela :)

bonne soirée à tous.



Cette discussion est classé dans : chaine, char, caractére, découper, monchar


Répondre à ce message

Sujets en rapport avec ce message

PB DE CHAINE DE CARACTERE [ par Orkblutt ] pkoi ceci me genere t'il une erreur a l'execution??#include void main(){ int o; o=2000; char* O=new char; itoa(o,O,10); char* ch="Fichier"; strcat(ch, PB DE CHAINE DE CARACTERE [ par Orkblutt ] pkoi ceci me genere t'il une erreur a l'execution??#include void main(){ int o; o=2000; char* O=new char; itoa(o,O,10); char* ch="Fichier"; strcat(ch, Chaine de Char et Memoire ! [ par Soft ] Bonjour,Qq1 connait il un moyen pour charger le contenu d'un fichier (pouvant atteindre plusieurs dizaines de MO) dans un char *buffer;Car meme avec u convertion CString à char[ ]! [ par souaisou ] comment convertir de cstring a une chaine de caracteres et d'un chaine de caractere a un cstring....Merci PROBLEME pour retourner un char* a partir d'un fichier [ par kobee12 ] Voici ma fonction. Elle prend en argument un caractere. A partir de ce caractere, elle renvoie la chaine qui lui est associe.Par exemple:"fichier_lang PROBLEME pour retourner un char* apres recuperation d'une chaine(sscanf) d'un fichier [ par kobee12 ] Voici ma fonction. Elle prend en argument un caractere. A partir de ce caractere, elle renvoie la chaine qui lui est associe.Par exemple:"fichier_lang Convertion d'une string en char [ par redpooka ] Voici avec ce programme ca n'affiche juste le premier charactère comment faire pour qu'il affiche toute la chaine de caracètre ?Merci#include <iostre problème d'allocation mémoire dans ma classe [ par Bub325 ] Salut, j'ai un problème dans le code suivant au niveau de l'allocation mémoire de tmp.a = new char... dans operator+, et je ne sait pas du tout pourqu Initialiation d'un char [ par Stoomm ] Bonjour,J'ai vu un programme qui faisais ca :char monchar[10][256]={slide001.bmp, slide002.bmp, CString en char * [ par AryCooL ] Bonjour a tous,j'ai un probleme et je voudrais savoir comment convertir un CString en char* si c'est possible.Sinon comment peut-on serialiser une cha


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,203 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.