Rechercher : dans
Par :

Parcourir une chaine en C

Dernière réponse le 29 mai 2008 à 23:54:27 céline, le 29 mai 2008 à 21:17:22 
 Signaler ce message aux modérateurs

Bonjour à tous,
SI vous pouvez me montrez comment faire pour parcourir une chaine de caractere en C.
merci

Configuration: Windows Vista
Internet Explorer 7.0

Meilleures réponses pour « parcourir une chaine en C » dans :
Les guillemets, apostrophes et les chaînes VoirComment jouer avec les guillemets et les apostrophes dans les chaînes 1. Préambule 2. Éviter une coupure dans la chaîne 3. Ajouter un guillemet dans la chaîne 3.1 Avec l'apostrophe 3.2 Avec l'ASCII 3.3 Directement 3.3.1 Méthode...
Les chaînes de caractères en C++ VoirQu'est-ce qu'une chaîne de caractères ? Une chaîne de caractères (appelée string en anglais) est une suite de caractères, c'est-à-dire un ensemble de symboles faisant partie du jeu de caractères, défini par le code ASCII. En langage C++, une...
Langage C - Les listes chaînées VoirLa notion de structure autoréferrentielle Une structure autoréferrentielle (parfois appelée structure récursive) correspond à une structure dont au moins un des champs contient un pointeur vers une structure de même type. De cette façon on crée...
Langage C - Les chaînes de caractères VoirQu'est-ce qu'une chaîne de caractères ? Une chaîne de caractères (appelée string en anglais) est une suite de caractères, c'est-à-dire un ensemble de symboles faisant partie du jeu de caractères, défini par le code ASCII. En langage C, une chaîne...

1

Marco la baraque, le 29 mai 2008 à 21:39:18

Bonsoir

char chaine[] = "Hello!";
int iterateur=0;
while(chaine[iterateur] != '\0') { //En C, le caractère \0 correspond à la fin de ta chaine
 //Tu mets ton code ici
 iterateur++;
}


Cordialement,

Répondre à Marco la baraque

2

céline, le 29 mai 2008 à 21:43:23

Merci MARCO
en fait jai une fonction " get_word" qui doit retourner les mots de la chaines séparés par uné space


voila ce que j'ai fait: est ce que c comme ca on fait quand la fonction retourne un type chaine caractere.
Help pliz
merci


char * getword (char[50] ligne)
{
char word [50];
for(int j=0, j< strlen(ligneà; j++){
if(substr(ligne; 1;i)==""
word =substr(ligne; 1;i);
}
return word
}

Répondre à céline

3

Marco la baraque, le 29 mai 2008 à 21:59:21

Salut,
Tu n'as pas besoin de te compliquer la vie autant. Si tu as le droit de modifier la chaine d'entrée, tu peux faire ceci :

char * getword (char[50] chaine)
{ 
    for(int j=0; j<strlen(chaine); j++){
            if(chaine[j]==' ')
                            chaine[j]=',';
    }
    return chaine;
}


Si par contre tu n'as pas le droit de la modifier, je te conseille de créer un char* de même taille que ta chaine d'entrée, de parcourir la chaine caractère par caractère et de copier chaque caractère dans ta nouvelle chaine un par un (sauf quand tu lis un espace, dans ce cas tu écris une virgule). C'est mieux que d'utiliser strcpy (qui va parcourir ta chaine), puis de la reparcourir pour modifier les espaces en virgules.

Répondre à Marco la baraque

4

céline, le 29 mai 2008 à 22:08:27

MERCI MARCO,
moi j'ai pas besoin de mettre des virgule,
j'ai à extraire les mots c tt pour les mettre dans des listes chainés apres.
merci

volia ce que j'ai fait :
void getword (char chaine[50])
{
int i=0;
while(chaine[i]!="")
i++;

word=substr(ligne, 0,i);
}


jai seulement cette erreur : incompatible types in assignements dans la derniere instruction
merci
jattends ta reponse

Répondre à céline

5

Marco la baraque, le 29 mai 2008 à 22:23:58

Ah oui, effectivement, je suis resté avec la première question dans la tête. Je regarde ça et je reviens rapidement.

Répondre à Marco la baraque

6

céline, le 29 mai 2008 à 22:24:51

Ok merci

Répondre à céline

7

Marco la baraque, le 29 mai 2008 à 23:49:21

Me revoilà !
Tout d'abord, substr n'est pas une fonction C mais C++, donc je préfère ne pas l'utiliser.
Ensuite, tu peux utiliser strtok de la bibliothèque string.h (elle prend une chaine et un séparateur en entrée, et te retourne le premier mot découpé dans ta chaîne). Ensuite tu la rappelle sur la chaine séparée du premier mot, jusqu'à ce qu'elle te retourne NULL.

Bon courage

Répondre à Marco la baraque

8

 céline, le 29 mai 2008 à 23:54:27

Merci beaucoup

Répondre à céline