#include <stdio.h>
int
main (void)
{
int i = 0;
char buf[256];
char n1[64], n2[64];
int nb, nb1, nb2;
int test = 0;
char *p, *p2, *ret;
printf("Entrer le nombre\n");
/** on regarde la chaine de caractère correspondant au nombre saisie **/
scanf("%s", &buf);
/** on attribue un pointeur à buf
*p correspond à buf[0] au depart
**/
p = buf;
/** on attribue un pointeur aussi à buf **/
p2 = buf;
/** on boucle jusqu'à tend qu'on tombe sur autre chose que des nombres, tout en
faisant evolué le pointeur
**/
while ((isdigit(*p)) && (*p != 0))
p++;
/** on verifie bien que *p c'est un / **/
if (*p == '/')
{
/** entre le debut de la chaine de caractère et le /, on enregistre, cette portion
de chaine de caractère dans une variable n1 correspondant au numérateur
**/
strncpy(n1, p2, p - p2);
/** on transforme la chaine de caractère n1 en nombre **/
nb1 = atoi(n1);
/** on attribue le nombre 1 à test pour dire que le nombre est une fraction **/
test = 1;
}
/** on fais evolue le pointeur pour enlever le / **/
p++;
/** apres le / et la fin de la chaine de caractère, on enregistre, cette portion de chaine
de caractère dans une variable n2 correspondant au dénominateur **/
strncpy(n2, p, p - p2);
/** on transforme n2 en nombre **/
nb2 = atoi(n2);
/** si test n'est pas égal à 0, c'est que le nombre est une fraction **/
if (!test)
nb = nb1/nb2;
/** sinon la chaine de caractère correspond tout simplement à un nombre à par entière **/
else
nb = atoi(buf);
return 0;
}