Chaine de caractere

badrali90

Nouveau membre
J'ai corrigé cette erreur sur i++, et je parlais plutot des mots et non des caracteres, autant pour moi.
exemple: rue13 a 2aspects vue50
Rue13 et vue50 sont des mots alphanumerique
a et aspects sont alphabetique et
2 est nombre ou chiffre.
En resumé, faire un code qui me permettrait d'identifier le nombre de mots alphanumerique
, le nombre de mots constituant essentiellement de lettre alphabetique et les nombre dans une chaine de caractere de caractere(ou phrase).
Merci pour vos interventions.


#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define DIM 500
void vet(char a[], int *x, int *y, int *z);// x, y, z represente respectivement nombre de caract alphanum, alphabetik et numerik
main(){
int x, y, z;
char a[DIM];
printf("inserer une chaine de caractere: ");
gets(a);// lire la chaine de caractere
vet(a,&x,&y,&z);

}
void vet(char x[], int *m, int *n, int *q){
int i, k, a, y, z;
i = 0;
a = 0;
y = 0;
z = 0;
k = 0;
m = &a;
n = &y;
q = &z;

while(x){
[ for(i=i; x!=' ';i++) /*** identifie les nombres */

while(x>='0' && x[i++]<='9'){
z++;} ]

[ for(i=i; x!=' ';i++) /* identifie les mots constituant essentiellement de lettre alphabetique */
while((x>= 'A' && x[i++]<='Z') || (x[i++]>= 'a' && x[i++]<='z')){
y++;} ]

[for(i=i; x!=' ';i++) /* identifie les mots alphanumerique */
while(!((x>='0' && x[i++]<='9')||(x[i++]>= 'A' && x[i++]<='Z') || (x[i++]>= 'a' && x[i++]<='z'))){
a++;} ]
i++;
}
printf("il ya %d alfanumeriques, %d alfabetique e %d numerique", a, y, z);
system("PAUSE");

}

Aidez-moi s'il vous plait.
 

zeb

Modérateur
Salut et bienvenue.

Merci de modifier ton message : encadre le code que tu proposes entre les balises [code=c] et [/code].
Le C étant exigeant envers la syntaxe et l'orthographe, entraîne-toi en respectant le français.
Et relis ta leçon sur l'opérateur ++.
 

KyrO_82

Grand Maître
Salut,
Je comprend pas grand chose au problème...

Dans la chaîne "Rue13 a 2 aspects vue50." moi je vois:
- 14 lettres (=caractère alphabétiques) (et donc pas 2 comme tu le dis)
- 5 caractères numériques (et donc pas 1 comme tu le dis)
- 4 espaces et 1 signe de ponctuation
- ce qui donne 14+5 = 19 caractères alphanumérique (et donc pas 2 comme tu le dis)

Tu peux m'expliquer?

Ensuite, c'est vrai que je ne fais plus de c depuis bien longtemps, mais je comprend pas le code. Déjà, pas besoin de faire une nouvelle boucle pour compter les caractères alphanumériques, suffit de faire les caractères alphabétiques + les caractères numériques.

Ensuite, toutes ces boucles... je vois des "while" dans des "for" dans un "while", je comprend vraiment pas pourquoi, pour moi il faut juste 2 "if" dans un "for".


C++:
text = "Rue13 a 2 aspects vue50";
cntNum = 0;
cntAlpha = 0;
cntAlphaNum = 0;

i = 0;
len = strlen(text);
for (i=0; i<len; i++) {
  c = text[i];
  if (c >= "0" && c <= "9") {cntNum++;}
  if (c >= "a" && c <= "z" || c >= "A" && c <= "Z") {cntAlpha++;}
}
cntAlphaNum = cntAlpha + cntNum;


@zeb:
Il y aurait quelques doublons à supprimer, ce message a été posté 5 fois ;)
 

zeb

Modérateur
( @KyrO: Un bug a sans doute généré les doublons. Un autre (?) bug m’empêchait de les supprimer :/
Bon, maintenant c'est ok. Pour la prochaine fois, toi ou quiconque, merci de mettre une alerte plutôt que de pourrir un topic.
C'était Zeb qui participe au pourrissage de topic :whistle: )
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 098
Messages
6 717 058
Membres
1 586 285
Dernier membre
LeFront
Partager cette page
Haut