[C] Analyse des characteres d'une chaine
Résolu
M.V.
-
Char Snipeur Messages postés 9813 Date d'inscription Statut Contributeur Dernière intervention -
Char Snipeur Messages postés 9813 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Voila mon mini soucis...
Ma chaine string ressemble a cela: nombre operande nombre ( 1 + 1 ou bien 1+ 1 )... ( c'est une chaine de charactere )
do {
valeur1[i]=string[i];
printf("%c",valeur1[i]);
i++;
} while ((string[i]!=(' ','+'));
Ici je veux récupérer mon premier nombre, cela marche bien. S'il y a un espace ou le signe "+", le stockage dans mon tableau "valeur1" s'arrète...
et je n'arrive pas a faire l'équivalent avec un while plus complet
exemple: while ((string[i]!=(' ','+','-',*','/'));
Ca ne marche pas, pouvez vous m'aider a trouver un équivalent qui fonctionne ?
danke
Voila mon mini soucis...
Ma chaine string ressemble a cela: nombre operande nombre ( 1 + 1 ou bien 1+ 1 )... ( c'est une chaine de charactere )
do {
valeur1[i]=string[i];
printf("%c",valeur1[i]);
i++;
} while ((string[i]!=(' ','+'));
Ici je veux récupérer mon premier nombre, cela marche bien. S'il y a un espace ou le signe "+", le stockage dans mon tableau "valeur1" s'arrète...
et je n'arrive pas a faire l'équivalent avec un while plus complet
exemple: while ((string[i]!=(' ','+','-',*','/'));
Ca ne marche pas, pouvez vous m'aider a trouver un équivalent qui fonctionne ?
danke
A voir également:
- [C] Analyse des characteres d'une chaine
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Chaine tnt gratuite sur mobile - Guide
- Analyse composant pc - Guide
- Analyse performance pc - Guide
- Analyse disque dur - Télécharger - Informations & Diagnostic
5 réponses
for(int i = 0; i < strlen(string) ; i++) {
if(isNum(string[i])) {
tab[i] = string[i]
}
}
Pour la fonction isNum(), je sais plus comment ça s'appelle exactement, mes souvenirs de C sont un peu lointains, mais t'en as une qui fait ça.
if(isNum(string[i])) {
tab[i] = string[i]
}
}
Pour la fonction isNum(), je sais plus comment ça s'appelle exactement, mes souvenirs de C sont un peu lointains, mais t'en as une qui fait ça.
Il est possible de faire un test d'un caractère (stocké dans string[i]) avec une structure de choix multiple (instruction case).
case (string[i])
{
' ' :
'+' :
'-' :
'*' :
'/' : break;
else
valeur1[i]=string[i];
printf("%c",valeur1[i]);
i++;
}
case (string[i])
{
' ' :
'+' :
'-' :
'*' :
'/' : break;
else
valeur1[i]=string[i];
printf("%c",valeur1[i]);
i++;
}
Il semble que le while ne lit pas ce qui est a gauche de la virgule dans la condition.
j'ai donc fait ceci:
while ((string[i]!=('-'))&&(string[i]!=('+'))&&(string[i]!=('*'))&&(string[i]!=('/')));
qui est un peu plus lourd
Merci.
j'ai donc fait ceci:
while ((string[i]!=('-'))&&(string[i]!=('+'))&&(string[i]!=('*'))&&(string[i]!=('/')));
qui est un peu plus lourd
Merci.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question