Comment définir une variable ?

EL barto ! Messages postés 124 Statut Membre -  
EL barto ! Messages postés 124 Statut Membre -
Bonjour,
j'ai une question , je rencontre un problème pour definir une variable voici les données du problème :

j'ai un texte ( = S ource) j'ai deux balises dans ce texte (<title> et <\title>) je voudrais recopier le morceau de S qui se trouve entre les deux balises.
Comment faire ?

j'ai pensé à cela :

if ( (!(S =< S [<title>] ) && ( ! ( S [<\title>] <= S ) )
printf ???

voilà pourqoi j'en suis venu à me demander si déclarer une variable
char u = ( (!(S =< S [<title>] ) && ( ! ( S [<\title>] <= S ) )

est ce possible ???

11 réponses

Scoleproj Messages postés 285 Statut Membre 26
 
Si je comprend bien tu veux declarer une variable avec des operateurs &?
Je crois pas que sa soit possible
0
EL barto ! Messages postés 124 Statut Membre 6
 
le probleme c'est que j'ai un texte brut, et que je n'arrive pas à definir des termes qu'il contient comme des variables.

par exemple c'est comme si j'écrivai :

je suis el barto bonjour je suis content de vous avoir parler, au revoir et au plaisir.

... et que dans la phrase je vueille isoler la chaine de caractère comprise entre bonjour et au revoir.
sauf laphrase ne sera jamais la même, malgré que je sais qu'il y aura toujours 'bonjour' et aurevoir'

C'est pourquoi je pensais qu'utiliser des operateur de comparaison ou logique dans la definition de mes variables. Mais je n'en sais rien si c'est possible.
EN fait quelqu'un ma déja fourni un programme qui le fait. Mais il est complexe, et confus, y'a trop de variable. je pense que quelque chose de plus simple est possible. comment tu t'y prendrais toi ?
0
Scoleproj Messages postés 285 Statut Membre 26
 
Oh j voi de quoi tu parle, javais deja rencontre cet exo, je l'avais resolue avec C++, mais ya longtemps de cela, desolé je me souviens pas.IL faut bien etudier les differentes fonctions d'une chaine de caractere, sinon tu stoque chaque mot dans une variable.. et tu essaye de faire une comparaison.
0
EL barto ! Messages postés 124 Statut Membre 6
 
mais est ce que le C# est le language le plu approprié, pour ce genre d'exo ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Scoleproj Messages postés 285 Statut Membre 26
 
Cet exo tu peux le faire avec n'importe kel language, mais avec C# il me faisait kelk ligne.
Par exemple je me souviens dautre l'on fait avec PASCAL, qui etait aussi pas mal!!
Sa lair bete comme exo mais assez difficile et chiant!!!!
0
Marco la baraque Messages postés 1030 Statut Contributeur 329
 
Bonsoir El Barto,
Pour résoudre ton problème regarde du côté de l'API regex de java. Tu as un tutorial pas trop mal ici :ftp://ftp-developpez.com/cyberzoide/java/regex.pdf
Evite aussi d'écrire plusieurs posts sur le même sujet stp.

Merci, et bien cordialement,

Edit : Je pensais que tu utilisais java, mais si ce n'est pas le cas, tu ne peux peut-être pas utiliser les expressions régulières. La solution serait alors de parcourir ton fichier http tant que tu ne tombes pas sur <title>. Ensuite tu stockes tous les caractères dans un char[] jusqu'à tomber sur </title>.
0
EL barto ! Messages postés 124 Statut Membre 6
 
est ce que ça ressemblait à ça : (?)
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
    int y;
    const int TAILLE_CHAINE_MAX = 555;

    char * debut = "<titre>";
    char * fin = "<\titre>";
    char chaine[TAILLE_CHAINE_MAX];
    chaine[0] = -1;
    chaine[TAILLE_CHAINE_MAX-1] = '\0';
    char sous_chaine[TAILLE_CHAINE_MAX];

    int u = 0;
    int indice = 0;
    int taille = strlen( debut );
    int ok = 0;

    printf( "Ce programme trouve une sous-chaine comprise entre les chaines %s et %s.\n\n", debut, fin );
    printf( "Ecrivez un texte de la forme : \n[...] %s [...] %s [...] (Maximum %i caracteres)\n", debut, fin, 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.
    scanf("%c", &chaine[u]);
    while ( chaine[u] != '\n' && u<TAILLE_CHAINE_MAX-1 ) {
        ++u;
        scanf("%c", &chaine[u]);
    }

    if ( u < TAILLE_CHAINE_MAX-1 )
    { chaine[u] = '\0'; }

    u = 0;
    while ( u < strlen( chaine ) && ok == 0 ) {
        // Si on trouve debut dans la chaine saisie
        if ( strncmp( &chaine[u], debut, taille ) == 0 ) {
            u = u + taille;
            taille = strlen( fin );
            // On cherche maintenant la chaine fin
            while ( u < strlen( chaine ) ) {
                sous_chaine[indice] = chaine[u];
                // Si on trouve la chaine fin...
                if ( strncmp( &chaine[u], fin, taille ) == 0 ) {
                    // ...on enregistre l'indice
                    sous_chaine[indice] = '\0';
                    // ...on sort
                    ok = 1;
                    break;
                }
                ++u; ++indice;
            }
        }
        ++u;
    }

    if ( ok == 1 )
        printf( "La sous-chaine trouvee est : '%s'.\n", sous_chaine );
    else
        printf( "Aucune sous-chaine trouvee.\n" );
scanf ( "%c", &y);
    return 0;
}

0
Scoleproj Messages postés 285 Statut Membre 26
 
Ouais cetait quelque chose comme sa sauf moi javai pas chaine max!!!
Sinon en general je crois c sa!!!Tu la trouvé ou?
0
EL barto ! Messages postés 124 Statut Membre 6
 
je l'ai fait avec deux amis.

mais j'arrive pas à croire que qu'il y ait pas de façon plus concise pour regler ce probleme.

est ce que tu connais un site complet sur les librairie C# ?
0
Scoleproj Messages postés 285 Statut Membre 26
 
Ta essaye developpez.com tu peus y trouvé tous, sinon pose ta question sur le forum de developpez.net
0
EL barto ! Messages postés 124 Statut Membre 6
 
Ok merci bonne nuit.
0