slt a tous moi je sui un jeune etudiant en genie logiciel enfaite j'ai un probleme que je n'arrive pas a resoudre.
voici mon bleme:
Ecrire une fonction en c qui prend un email en argument puis retourne 1 si l'email est valide sinon 0.
*La partie (1) doit commencer par une lettre et doit contenir et/ou les caracteres suivants: le point(.) le tiret du 6(-) le tiret du 8(_)
*La partie (2) ne doit contenir que des lettres
*La partie(3) ne doit contenir que des lettres et doit avoir 2 ou 3 lettres seulement
ok c'est ca merci a vous !!!
Voila ce que moi j'ai fai mai ca ne fonctionne pa. apres la saisi de l'email le programme se plante je crois que mon ble c'est la declraration de la chaine.
s'il vous plait j'ai recours a votre aide.
Code:#include<stdio.h> int EMAIL(char ch[]); int EMAIL(char ch[]){ int i,j,arb,pnt,valide,cpt=0; ch=""; printf("Veuillez saisir votre adresse email:\n"); scanf("%s",&ch); if(ch[0]>=65&&ch[0]<=90||ch[0]>=97&&ch[0]<=122){ //controle de l'alphabetisation du premier caractere valide=1; }else valide=0; if(valide==1){ //controle de la premiere partie for(i=0;i<ch[i]!='\0';i++) { if(ch[i]='@'){ arb=ch[i]; } for(j=0;j<arb;j++) { //controler a travers leur code ASCII les valeurs comprises entre A-Z et a-z y compris le - le _ et le . if(ch[j]>=65&&ch[j]<=90||ch[j]>=97&&ch[j]<=122||ch[j]==45||ch[j]==95||ch[j]==46){ valide=1; }else valide=0; } } } if(valide==1){ //controle de la deuxieme partie for(i=arb;i<ch[i]!='\0';i++){ if(ch[i]='.'){ pnt=ch[i]; } for(j=arb;j<pnt;j++){ if(ch[j]>=65&&ch[j]<=90||ch[j]>=97&&ch[j]<=122){ valide=1; }else valide=0; } } } if(valide==1){ //controle de la troisieme partie for(i=pnt;i<ch[i]!='\0';i++){ cpt=cpt+1; if(ch[i]>=65&&ch[i]<=90||ch[i]>=97&&ch[i]<=122){ if(cpt<=3){ valide=1; }else valide=0; } } } if(valide==1){ return 1; }else return 0; } main(){ char ch[30]=""; EMAIL(ch); }
-----