Cita de: Isótopo en 11 Diciembre 2011, 16:45 PM
Haz debug y fíjate en el tamaño de la variable x, porque yo diría que formas un bucle infinito y nunca retornas el parrafo.
Buenas amigo! Gracias por la ayuda! Pero me podrias decir como hacer eso?
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes MenúCita de: Isótopo en 11 Diciembre 2011, 16:45 PM
Haz debug y fíjate en el tamaño de la variable x, porque yo diría que formas un bucle infinito y nunca retornas el parrafo.
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
string punto(string parrafo){
int tamano, x=0, x1, x2, x3, x4;
string str, inicial, b1, b2, b3;
tamano=parrafo.size();
do {
while (x<=tamano && str!="."){
str=parrafo.substr(x, 1);
x=x+1;}
x1=x-2;
b1=parrafo.substr(x1, 1);
if (b1==" "){
parrafo=parrafo.erase(x1, 1);
x=x-1;}
x3=x-2;
b2=parrafo.substr(x3, 1);
if (b2== "," || b2==";"){
parrafo=parrafo.insert(x3," <<");
x4=x1+4;
parrafo=parrafo.insert(x4,">>");
x=x+5;}
b3=parrafo.substr(x, 1);
if (b3!=" "){
parrafo=parrafo.insert(x, " ");}
x2=x+1;
inicial=parrafo.substr(x2, 1);
transform(inicial.begin(),inicial.end(), inicial.begin(), ::toupper);
parrafo=parrafo.replace(x2, 1, inicial);
tamano=parrafo.size();
}
while (!(x==tamano));
return parrafo;
}
int main(){
string parrafo, parrafo1;
cout<<"Introduzca un texto"<<endl;
getline(cin, parrafo);
parrafo1=punto(parrafo);
cout<<parrafo1<<endl;
return 0;
}
Cita de: BlackZeroX (Astaroth) en 7 Noviembre 2011, 00:40 AM
cuanta los numeros y has una diferenciacion de longitudes asi determinas enq ue posicion esta ese 1
tambien puedes ir almacenando cada numero de esta manera.
Supongamos que tu etiqueta sond e 32 numeros (0 y 1)
entonces:
supongamos este numero.
100010000100001001010110101100
como ves no son 32 numeros los 0 mas significativos no se escriben pero como empiesas tu de la izquierda a la derecha harias algo asi:
entero iCode = 0
mientras no lleguemos al final
iCode <<= iCode | getBit(); // Dezplazmos los bits de iCode a la izquierda y hacemos una operacion OR es decir:
es decir obtienes
100010000100001001010110101100
y lo agregas desplazando los anteriores bits a la izquierda. (<<=)
es decir:
leyendo: 100010000100001001010110101100
INT | en Bits
iCode = 0000000000000000000000000000000
iCode <<= iCode | getBit();
iCode = 0000000000000000000000000000001
iCode <<= iCode | getBit();
iCode = 00000000000000000000000000000010
iCode <<= iCode | getBit();
iCode = 00000000000000000000000000000100
iCode <<= iCode | getBit();
iCode = 00000000000000000000000000001000
...
iCode <<= iCode | getBit();
iCode = 00100010000100001001010110101100
Termino...
como ves se hace un while()...
int iCode = 0;
while(!getEndBit()) {
iCode <<= iCode | getBit();
}
Dulces Lunas!¡.
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
string s;
cout<<"Introduzca una palabra"<<endl;
cin>>s;
transform(s.begin(), s.end(),s.begin(), ::toupper);
cout<<"La palabra introducida es: "<<s<<endl;
}