C/Visual C - Como separar cadenas de una cadena en C

 
Vista:

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
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de SuperIndio
Val: 47
Ha mantenido su posición en C/Visual C (en relación al último mes)
Gráfica de C/Visual C

Como separar cadenas de una cadena en C

Publicado por SuperIndio (42 intervenciones) el 22/02/2019 15:32:57
Asi:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
/*
   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);
}

resultado:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{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>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Como separar cadenas de una cadena en C

Publicado por Carlos (1 intervención) el 16/10/2021 08:33:10
Arreglé este programa para que funcione con memoria dinámica y para que la cuenta se lleve mejor y no se tenga que imprimir la última palabra fuera del for.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#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);
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar