0/5 (2 avis)
Snippet vu 9 753 fois - Téléchargée 40 fois
/* PROGRAMME EN C SOUS DOS TURBO C++ DEVC++4 ecrit le 22-03-2002 par cmarsc FONCTIONS DU BASIC LEFT MID RIGHT */ #include <conio.h> /* <conio.c> devc++4 */ #include <stdio.h> #include <string.h> /* strlen strncpy */ char *C_LEFT(char *texte,int nbre_caracteres); char *C_MID(char *texte,int depart, int fin); char *C_RIGHT(char *texte,int nbre_caracteres); int main(void) { char *resultat; char *texte = "VOUS POUVEZ ENTRER LE TEXTE QUE VOUS SOUHAITEZ DANS CETTE ZONE"; clrscr(); /* afficher le texte entier */ textcolor(WHITE); gotoxy(1,1); cprintf ("%s",texte); textcolor(LIGHTRED); /* afficher les 11 premieres lettres */ gotoxy(1,5); resultat = C_LEFT(texte,11); cprintf ("LEFT : %s",resultat); textcolor(YELLOW); gotoxy(1, 7); /* afficher de la 11 eme lettre jusqu'au 46 eme caracteres */ resultat = C_MID(texte,11,46); cprintf ("MID : %s",resultat); textcolor(LIGHTCYAN); gotoxy(1,9); /* afficher les 15 derniers caracteres */ resultat = C_RIGHT(texte,15); cprintf ("RIGHT : %s",resultat); getch(); return 0; } /* fin de main */ char *C_LEFT(char *texte, int nbre_caracteres) { static char resultat[80]; if (nbre_caracteres > 0 && nbre_caracteres < strlen(texte) ) { strncpy (resultat, texte, nbre_caracteres); resultat[nbre_caracteres] = '\0'; } return resultat ; } /* fin de C_LEFT */ char *C_MID(char *texte, int depart, int fin) { static char resultat[80]; if (depart > 0 && fin < strlen(texte) ) { strncpy (resultat, texte + depart , fin - depart); resultat[fin - depart] = '\0'; } return resultat; } /* fin de C_MID */ char *C_RIGHT(char *texte, int nbre_caracteres) { static char resultat[80]; if (nbre_caracteres > 0 && nbre_caracteres < strlen(texte) ) { strncpy(resultat,texte + (strlen(texte) - nbre_caracteres), nbre_caracteres); resultat[nbre_caracteres] = '\0'; } return resultat; } /* fin de C_RIGHT */
15 juil. 2004 à 08:29
ce que tu dis es correct, en C/C++ l'indice commence à 0 et non a 1 pour le basic (cela dépend du langage).
11 juil. 2004 à 14:54
La fonction mid en vb index a 1: je m'explique:
si on veut le premier caractére ou a: mid(str,1,1)
alors que sur ta fonction: C_MID(str,1,1) donne le deuxième !
faut juste le preciser.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.