disperser les espaces dans une ligne
bonjour tout le monde j'essaye envain d'aboutir à mon projet qui est de justifier un texte j'ai fait ça:
Code:
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 52 53 54 55 56 57 58 59 60 61 62
|
#include <string>
#include <iostream>
using namespace std;
int main()
{
// Lecture
string text;
int l, deb;
cout << "texte ?" << endl;
getline(cin,text);
cout << "Entrer le nombre de caractere que vous voulez pour une ligne?" << endl;
cin >> l;
// Nombre de caracteres
size_t len = text.length();
// Nombre de mots
unsigned int nb_words=0;
for(unsigned int i=0;i<len;i++)
{
// avancer jusqu'au prochain mot
while ((isalpha(text[i]) && i<len)) i++;
// on a atteint la fin d'un mot ou de la chaine
if (i<=len)
nb_words++;
}
if (l<10 or l>80){
cout<<"l est erroné."<<endl;
}
else {
if ((text.length()) < l)
{
cout<<text<<endl;
}
else
{
deb = 0;
i = l;
while (i < len)
{
while ((i>deb) && (text[i] != ' ')) i--;
if (i>deb)
{
text[i]=10;
deb = i;
i += l;
}
}
cout << text << std::endl;
}
}
} |
tout marche comme je le souhaite mais maintenant il faudrait que je répartise mes espaces entres mes mots suivant la longueur de la ligne, si vous pourriez m'indiquer comment je peut faire ce serait super.
merci d'avance