SoloCodigo
Programación General => C/C++ => C++ Builder => Mensaje iniciado por: gabrielz1 en Viernes 23 de Diciembre de 2005, 18:10
-
hola amigos de c/c++ nose si me pueden ayudar.
Lo que necesito es saber como puedo controlar una frase.
Bueno por ejemplo tengo una cadena de caracteres como la siguiente.
cadena = "hola amigos de c/c++ nesesito que esta frase se reparta en diferentes lineas";
en la cadena tenemos 76 caracteres. lo que necesito es queesa cadena se reparta en tres filas de 24 caracteres.
hola amigos de c/c++
nesesito que esta frase
se reparta en diferentes
lineas
si nos damos cuenta las lineas son 4 puesto que las palabras no se cortaron y se agregaron caracteres nulos y la palabra entera como no cabia en la linea de 24 se tubo que pasar a la siguiente linea.
Bueno amigos no se si me pueden ayudar en esto.
les agradesco anticipadamente.
-
Hola, mira realmente esta facíl si sabes hacer lo siguiente:
Sabes tomar caracter por caracter de una cadena??
If(answere= true)
{
/*Observa que para lo que requieres, el caracter #25 siempre debe ser NULL o vacio, espacio, etc, entonces valida cada 25 caracteres que sea vacio, de lo contrario del caracter 25 al 1 identifica el primer espacio, toma la posicion y alli esta la primera línea, la segunda de la misma forma, me explico.
ejemplo:
cadena="esta casa es de colo rosado y tejado color rojo." =48 char;
Me atrevere a poner código sin probar, pero es una idea....
pos=25;// cantidad de caracteres
tam=50;//Numero de lineas deseadas
lineas[tam];
linea=0;
while (pos<Lenght(cadena))
{
line[linea]="";
if (Lenght(cadena)<25)
{
Line[0]=cadena;
}
else
{
if (cadena[pos]=="" || cadena[pos]==" ")
{
for (int p=pos-25;p<pos;p++)
{
line[linea]=line[linea]+cadena[p];
}
}
else
{
for (int p=pos;p>pos-26;pos--)
{
if (cadena[p]==" ")
{
ExitFor;
}
}
for (int a=0;a<p+1;a++)
{
line[linea]=line[linea]+cadena[a];/////esto llena la linea cuando son mas de 24 caracteres y debe tomar la palabra completa.
}
pos=a;
}
linea++;
pos+=25;
for (int p=pos-25;p<pos;p++)
{
line[linea]=line[linea]+cadena[p];
}
}
mas o menos quedaría así....
Espero haberte ayudado.
Saludos.
*/
}
else
{
ShowMessage("SORRY!!!!");
}