Como separar cadenas de una cadena en C
Publicado por edgar (1 intervención) el 20/02/2019 17:20:32
Como separar cadenas de una cadena en C
Sin utilizar strtok
Sin utilizar strtok
Valora esta pregunta


0
/*
cc -o ejm23 ejm23.c
*/
#include <stdio.h>
#include <string.h>
int main( int argc, char * argv[] ) {
int contador = 0;
int i = 0;
int j = 0;
char cadena[100]= "No estoy gordo, solo estoy inundado, No estoy gordo, solo estoy rechonchito";
int largo = strlen(cadena);
char palabra[strlen(cadena)];
int bolle = 0;
for( i = 0; i < largo ; i++) {
if ( cadena[i] == ' ' && cadena[i+1] != ' ') {
contador ++;
printf("Palabra: %s \n", palabra);
memset( palabra, '\0', sizeof(palabra));
j=0;
} else {
palabra[j]=cadena[i];
j++;
}
}
printf("Palabra: %s \n", palabra);
printf("la cantidad de palabras es %d \n", contador);
}
{desa23}/demanda/desarrollo/Indio/source>ejm23
Palabra: No
Palabra: estoy
Palabra: gordo,
Palabra: solo
Palabra: estoy
Palabra: inundado,
Palabra: No
Palabra: estoy
Palabra: gordo,
Palabra: solo
Palabra: estoy
Palabra: rechonchito
la cantidad de palabras es 11
{desa23}/demanda/desarrollo/Indio/source>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int contador = 0;
int i = 0;
int j = 0;
char cadena[] = "No estoy gordo, solo estoy inundado, No estoy gordo, solo estoy rechonchito";
int largo = strlen(cadena);
char *palabra = (char *)malloc(sizeof(char) * largo);
for (i = 0; i < largo; i++)
{
palabra[i] = '\0';
}
for (i = 0; i <= largo; i++)
{
if (cadena[i] == ' ' && cadena[i + 1] != ' ')
{
contador++;
printf("Palabra: %s \n", palabra);
memset(palabra, '\0', sizeof(palabra));
j = 0;
}
else
{
if (cadena[i] == '\0')
{
printf("Palabra: %s \n", palabra);
contador++;
}
else
{
palabra[j] = cadena[i];
j++;
}
}
}
printf("la cantidad de palabras es %d \n", contador);
free(palabra);
}