Parcourir une chaine en C

Fermé
céline - 29 mai 2008 à 21:17
 céline - 29 mai 2008 à 23:54
Bonjour à tous,
SI vous pouvez me montrez comment faire pour parcourir une chaine de caractere en C.
merci

1 réponse

Marco la baraque Messages postés 996 Date d'inscription vendredi 9 mai 2008 Statut Contributeur Dernière intervention 5 novembre 2009 328
29 mai 2008 à 21:39
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,
2
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
}
0
Marco la baraque Messages postés 996 Date d'inscription vendredi 9 mai 2008 Statut Contributeur Dernière intervention 5 novembre 2009 328 > céline
29 mai 2008 à 21:59
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.
0