Un truc tout bête et pourtant casse tête
Résolu/Fermé
A voir également:
- Un truc tout bête et pourtant casse tête
- Casse-tête avec des allumettes - Télécharger - Jeux vidéo
- Un mot est caché dans l'en-tête du document. pour le trouver, modifiez sa couleur. ✓ - Forum Word
- Écran tv cassé réparation prix ✓ - Forum Ecran
- Récupérer compte whatsapp téléphone cassé ✓ - Forum WhatsApp
- Tête de parabole défectueuse - Forum TNT / Satellite / Réception
63 réponses
pyschopathe
Messages postés
1974
Date d'inscription
dimanche 2 mars 2008
Statut
Membre
Dernière intervention
22 mars 2010
135
23 oct. 2008 à 23:11
23 oct. 2008 à 23:11
Comment ça tu n'arrives pas à faire définir ?
pyschopathe
Messages postés
1974
Date d'inscription
dimanche 2 mars 2008
Statut
Membre
Dernière intervention
22 mars 2010
135
24 oct. 2008 à 00:09
24 oct. 2008 à 00:09
Essaie de modifier comme suit et donne moi le résultat de l'affichage stp :
Rentre le texte bonjour coucou au revoir.
i = 0; while ( i < strlen( chaine ) && !ok ) { printf( "Comparaison des chaines suivantes :\n"%s"\n"%s"\n\tTaille : %i\n", chaine[i], debut, taille ); // Si on trouve debut dans la chaine saisie if ( strncmp( chaine[i], debut, taille ) == 0 ) { i = i + taille; indice_debut = i; taille = strlen( fin ); // On cherche maintenant la chaine fin while ( i < strlen( chaine ) - taille ) { // Si on trouve la chaine fin... if ( strncmp( chaine[i], fin, taille ) == 0 ) { // ...on enregistre l'indice indice_fin = i-1; // ...on sort ok = 1; break; } ++i; } } ++i; }
Rentre le texte bonjour coucou au revoir.
pyschopathe
Messages postés
1974
Date d'inscription
dimanche 2 mars 2008
Statut
Membre
Dernière intervention
22 mars 2010
135
>
jeun's
24 oct. 2008 à 00:29
24 oct. 2008 à 00:29
Remplace les "\0" par '\0', ça devrait être mieux ^^ !
pyschopathe
Messages postés
1974
Date d'inscription
dimanche 2 mars 2008
Statut
Membre
Dernière intervention
22 mars 2010
135
24 oct. 2008 à 00:48
24 oct. 2008 à 00:48
#include <windows.h> #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { printf( "0\n" ); const int TAILLE_CHAINE_MAX = 255; char debut[] = "bonjour"; char fin[] = "au revoir"; char chaine[TAILLE_CHAINE_MAX]; printf( "1\n" ); chaine[0] = -1; // Pour éviter que la valeur soit à 10 dès le départ, ce qui nous ferait sortir de la boucle chaine[TAILLE_CHAINE_MAX-1] = '\0'; char * sous_chaine; printf( "2\n" ); int i = 0; int indice_debut, indice_fin; int taille = strlen( debut ); int ok = 0; printf( "3\n" ); printf( "Écrivez un texte de la forme : \nblablabla bonjour blablabla au revoir blablabla\n(Maximum %i caractères)\n", TAILLE_CHAINE_MAX ); // Tant que le caractère saisi n'est pas un saut de ligne et qu'on n'a pas atteint // le nombre de caractères maximum, on lit et on enregistre dans le tableau. for ( i=0 ; chaine[i] != 10 && i<TAILLE_CHAINE_MAX-1 ; ++i ) { scanf("%c", &chaine[i]); } printf( "4\n" ); if ( i < TAILLE_CHAINE_MAX-1 ) { chaine[i] = '\0'; } printf( "5\n" ); i = 0; while ( i < strlen( chaine ) && !ok ) { printf( "Comparaison des chaines suivantes :\n'%s'\n'%s'\n\tTaille : %i\n", chaine[i], debut, taille ); // Si on trouve debut dans la chaine saisie if ( strncmp( chaine[i], debut, taille ) == 0 ) { i = i + taille; indice_debut = i; taille = strlen( fin ); // On cherche maintenant la chaine fin while ( i < strlen( chaine ) - taille ) { // Si on trouve la chaine fin... if ( strncmp( chaine[i], fin, taille ) == 0 ) { // ...on enregistre l'indice indice_fin = i-1; // ...on sort ok = 1; break; } ++i; } } ++i; } printf( "6\n" ); // On recopie la sous-chaine comprise entre les indices de début et de fin dans la variable sous_chaine sous_chaine = malloc( ( indice_fin - indice_debut) * sizeof( char ) ); strncpy( sous_chaine, chaine[indice_debut], indice_fin - indice_debut ); printf( "7\n" ); printf( "La sous-chaine trouvée est : %s", sous_chaine ); getchar(); return 0; }
Essaie ça et dis moi quel est le dernier chiffre affiché.
23 oct. 2008 à 23:13
char v[8] = 'bonjour';
le compilateur s'arrête, et indique
[ warning] caractere constant too long for its type
C'est apparemment pas le bon type. non ?
23 oct. 2008 à 23:17
Les simples quotes ( ' ) sont utilisés pour les caractères simples, pas pour les chaines de caractères.