C/Visual C - Cadena de caracteres

 
Vista:

Cadena de caracteres

Publicado por Ayase (1 intervención) el 27/03/2008 21:08:34
Hola, me gustaría saber como hacer en C que tú introduzcas una cadena de carácteres por teclado y te muestre que por ejemplo, la cadena "abc" se encuentra dentro.

Por ejemplo:

Escribes "adfasdfabcsfsd." y te muestra que la cadena de carácteres "abc" se encuentra en la fase.
No sé muy bien como hacerlo, porque yo tengo en mente un if pero ni idea... ¿alguna sugerencia?

Gracias.
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

RE:Cadena de caracteres

Publicado por Abraham Verde (25 intervenciones) el 28/03/2008 15:57:06
Hola, tienes 2 maneras de hacer eso:

1) Haces un for que recorra toda la cadena y vas preguntando por la primera letra de la palabra a buscar dentro de la cadena principal. Al momento de conseguirla preguntas por la segunda letra de la palabra a buscar y asi sucesivamente.

2) Utilizas la funcion strstr de la libreria string.h. En este link tienes el prototipo de la funcion:

http://tigcc.ticalc.org/doc/string.html#strstr

Saludos!
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

RE:Cadena de caracteres

Publicado por eduardo (82 intervenciones) el 02/04/2008 01:34:03
Una solución podria ser esta:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <conio.h>

int encontrar_subcadena( char *sub_c, char *cadena );

int main( void )
{
char s[ 100 ], subcad[ 100 ];
int busqueda;

printf( " Ingrese una cadena: " );
gets( s );

printf( " Ingrese subcadena a buscar: " );
gets( subcad );
printf( " " );

busqueda = encontrar_subcadena( subcad, s );

if( busqueda == -1 )
printf( " No Encontrado " );
else
printf( " Encontrado en la posicion %d ", busqueda );

printf( " " );
getch();
return 0;
}

/* Devuelve en un caso, la posición de la primera ocurrencia de la
subcadena a la que apunta sub_c dentro de la cadena a la que
apunta cad y, en otro caso, el valor -1 si no se encuentra
ninguna ocurrencia */
int encontrar_subcadena( char *sub_c, char *cad ) {
register int t;
char *p, *p2;

for ( t = 0; cad[t]; t++ ) {
p = &cad[ t ];
p2 = sub_c;
while( *p2 && (*p2 == *p) ) {
p++;
p2++;
}
if( !*p2 )
return t;
}

return -1;
}

Saludos
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