Ayuda en un programa de c: Separar palabras de la puntuación

Iniciado por Bròquil, 3 Diciembre 2013, 11:44 AM

0 Miembros y 1 Visitante están viendo este tema.

Bròquil

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.


#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;
}

Bròquil

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