bonjour,
Le programme ci-dessous fonctionne.
Si on essaye de le transformer en fonction il ne fonctionne plus.
Deux variables posdeb1 et posfinresul1 n'ont pas de valeur en sortie de fonction même si je les inclue dans la déclaration de fonction.
Pour tester il faut faire qq modifs:// à supp. ou ajouter.
Que voyez-vous de mal fait?
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 #include <iostream> #include <fstream> #include <string> #include <sstream> using namespace std; string raj1 = "....."; //espace maxi à occuper string resul1="Ab"; //chaine à justifier à droite int main() { cout <<"raj.tot.:"<< raj1<<"|espace max a occuper"<<endl; cout <<"res.ori.:"<< resul1 <<"| chaine a just a dr."<<endl; //long resul1 int iresul1, tailleresul1 = resul1.size (); //long raj1 int iraj1 , tailleraj1 = raj1 .size (); //découp. de raj1 int posdeb1=0; int posfinraj1=tailleraj1-tailleresul1; raj1= raj1.substr(posdeb1,posfinraj1); //conc. resul1=raj1+resul1; //appel fonction just(ajouter//aux lignes précédentes..) //string just (string raj1 ,string resul1);//supprimer les // cout <<" raj:"<<raj1<<"| espace a rajouter"<< endl; cout <<" res:"<<resul1<<"|chaine justifiee"<<endl; cout << "<E/Quitter>" << endl; char c=getchar();switch (c){case '\r':;break;} } //déclaration fonction just string just (string raj1 ,string resul1) { //long.resul1 int iresul1, tailleresul1 = resul1.size (); //long.raj1 int iraj1 , tailleraj1 = raj1 .size (); //découp.raj1 int posdeb1=0; int posfinraj1=tailleraj1-tailleresul1; raj1= raj1.substr(posdeb1,posfinraj1); //conc. resul1=raj1+resul1; return resul1; }
Avec mes remerciements.
![]()
Partager