C/Visual C - Encontrar una palabra en una frase

 
Vista:
sin imagen de perfil
Val: 9
Ha aumentado su posición en 4 puestos en C/Visual C (en relación al último mes)
Gráfica de C/Visual C

Encontrar una palabra en una frase

Publicado por alberto (7 intervenciones) el 16/10/2018 08:50:59
Hola, necesito ayuda con un programa. Tengo que ingresar una frase, luego una palabra y fijarme con un strcmp si la palabra se encuentra en la frase. El problema es que siempre me dice que no se encuentra. Si alguien me puede ayudar. Muchas gracias.
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
struct A{
    char f[100];
    int lp[50];
    char pal[20];
};
 
int palabra (int N, struct A frase){
    int k=0,j=0,l=0,ban=0,xd;
    char pala[20];
    for(k=0;k<N;k++){
        if(frase.f[k]!=' '||frase.f[k]!='\0'){
            pala[j]=frase.f[k];
            j++;
        }
        else{
            for(l=0;l<N;l++){
                if((strcmp(frase.pal[l],pala[l]))==0){
                    ban++;
                }
                else{
                    ban=0;
                }
            }
            if(ban==l){
                xd=1;
                break;
            }
            else{
                xd=0;
            }
            j=0;
            ban=0;
            l=0;
        }
 
    }
    return xd;
}
 
 
 
int main(){
    int i=0,j=0,N,xd;
    struct A frase;
    char C,D;
    printf("Ingrese frase: ");
    while((C=getchar())!='\n'){
        frase.f[i]=C;
        i++;
    }
    frase.f[i]='\0';
    N=strlen(frase.f);
    printf("Ingrese palabra: ");
    while((D=getchar())!='\n'){
        frase.pal[j]=C;
        j++;
    }
    frase.pal[j]='\0';
    xd= palabra(N,frase);
    if(xd==1){
        printf("La palabra esta en la frase");
    }
    else{
        printf("La palabra no esta en la frase");
    }
 
return 0;
}
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
sin imagen de perfil
Val: 89
Ha mantenido su posición en C/Visual C (en relación al último mes)
Gráfica de C/Visual C

Encontrar una palabra en una frase

Publicado por Bruno (38 intervenciones) el 16/10/2018 21:36:48
Hola. Que sepa, la funcion strcmp se utiliza con cadenas y no caracter a caracter. Ejemplo:

1
2
3
4
5
6
7
8
9
char p[100],
        q[100];
 
strcpy(p, "teclado");
strcpy(q, "mouse");
 
//Comparo
if( strcm(p, q) == 0)
   //iguales

Fijate en ese for y el el if para comparar, por ahí le estas fallando.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 9
Ha aumentado su posición en 4 puestos en C/Visual C (en relación al último mes)
Gráfica de C/Visual C

Encontrar una palabra en una frase

Publicado por alberto (7 intervenciones) el 16/10/2018 21:40:09
Muchas gracias!!
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