Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Bròquil en 3 Diciembre 2013, 11:44 am



Título: Ayuda en un programa de c: Separar palabras de la puntuación
Publicado por: Bròquil en 3 Diciembre 2013, 11:44 am
Hola buenos dias estoy haciendo un programa cuyo objetivo es separar con un espacio ' ' las palabras de la puntuación para crear más adelante un interprete de ordenes. Las variables estan en catalán pero igual me podeis ayudar gracias. El problema es que complia pero despues al ejecutar-lo y poner un signo de puntuacíón da error aqui dejo todo el codigo. Gràcias.

Código:
#include<iostream>
#include <stdio.h>
#include <string.h>
#include <vector>
using namespace std;
 
int main(){
    char original[500];
    int i=0;
    int mida;
    int mida2;
    int a;
    char nova[500];
    vector<string> paraules;
    paraules.clear();
    printf ("Introdueix una frase: ");
    cin.getline(original, 500, '\n');
    printf("La frase  es: %s\n",original);
    //quant medeix?
    mida=strlen(original);
    printf("La frase  medeix: %d\n",mida);
    //separar paraules

    while (i<mida){ printf (" 0 ");
if ((original[i]==',')||(original[i]=='.')||(original[i]=='?')||(original[i]=='!')||(original[i]==39)){
//Agregar un espai ' ' abans del signe.
printf (" 1 ");
for( a = 0; a < i; a++ ){
//lletra=
nova[a]=original[a];}

   nova[a]=32;//igual a un espai
for( a = i; a < mida; a++ ){
nova[a+1]=original[a];}
printf (" 2 ");
mida2= strlen(nova);
for( a = 0; a < mida2; a++ ){
original[a]=nova[a];}
printf (" 3 ");
mida=strlen(original);
}

i++;}
printf("La frase espaiada es: %s\n",original);
    //Buscador de paraules
    
return 0;
}


Título: Re: Ayuda en un programa de c: Separar palabras de la puntuación
Publicado por: Bròquil en 3 Diciembre 2013, 12:16 pm
El problema viene que no sé cómo igualar los dos strings;


el tercer for es para hacer un original =nova; pero no me lo acepta no sé porque


Título: Re: Ayuda en un programa de c: Separar palabras de la puntuación
Publicado por: Bròquil en 3 Diciembre 2013, 16:04 pm
resuelto