bonjour à tous!
La fonction FcStrAlz analyse une chaine "1234..".
Si un chiffre est présent devant la fonction un drapeau "0" empêche l'apparition d'une ligne.
Mais la valeur du drapeau ne sort pas de la fonction...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
 
//analyse de chaine
#include <iostream>
#include <string>
using namespace std;
 
 
string FcStrAlz(string StrAlz,string StrItm)//fonction confrontant
{//Fc/déb 13/09/11                          //un verrou "1"..."n"
cout<<"-----------------------"<<endl;      //avec sa présence
     int taille = StrAlz.size ();           //dans la chaine StrAlz
     int t=0;                               //si verrou la ligne s'efface
     string ElmStrAlz,stp="0";              //si verrou absent ou ""
     cout<<"  /d/<"<<stp<<">"<<endl;        //la ligne apparaît
     while (t<taille)
          {ElmStrAlz=StrAlz.substr(t,1);
          t++;
          cout<<ElmStrAlz<<" ";
          if (ElmStrAlz==StrItm)
              {stp="0";break;}              //si 0 efface ligne
              else stp="1";                 //si 1 igne apparait
          }
          cout<<"/z/<"<<stp<<">"<<endl;
cout<<"------------------------"<<endl;
     return stp;
}//Fc/fin 13/09/11
 
 
//prg essai
string StrAlz="123456";//chaine des verrous possibles
string Alz,StrItm,stp;
int main ()
{
    cout<<"ei-<"<<stp<<">-"<<endl;                                    //état stp entrée int main
        StrItm="1";                                                   //verrou "1" actionnant la L39
        Alz=FcStrAlz(StrAlz,StrItm);
    cout<<"1ex-<"<<stp<<">-ex pourquoi TOUJOURS VIDE!"<<endl;         //état stp sortie de fonction
        if (stp=="0")                                                 //ligne actionnée par L36
        {cout<<"§1 effacé"<<endl;}
        if (stp=="1")                                                 //cette ligne fonctionne pas car L36 a valeur "1"
        {cout<<"§1 apparaît"<<endl;}
 
        //ici pas de verrou 3 installé(on pourrait mettre StrItm="";)
        Alz=FcStrAlz(StrAlz,StrItm);
    cout<<"3ex-<"<<stp<<">-ex pourquoi toujours vide!"<<endl;         //état stp sortie de fonction
        if (stp=="0")                                                 //ligne fonctionne pas car L44 sans valeur
        {cout<<"§3 effacé"<<endl;}
        if (stp=="1")                                                 //ligne fonctionne car L44 sans valeur
        {cout<<"§3 apparaît"<<endl;}
    cout<<"0 pour sortir de int main";int zer;cin>>zer;
}
Où est l'erreur?
Merci pour vos lumières.
Sen.