C++ implementa la búsqueda de si una cadena contiene otra cadena
1. Usar la función de biblioteca
string.h
función strstr
Nombre de la función: strstr
Función : Encuentra la primera aparición de la cadena especificada en la cadena
Uso: char *strstr(char *str1, char *str2
Descripción: Devuelve el puntero a la primera aparición; puntero a la posición str2, si no se encuentra, devuelve NULL.
Llame a la función, juzgue si el valor de retorno es igual a NULL y decida si generar
Por ejemplo,
char *p=".c; "; //Subtítulos requeridos Cadena
if(strstr(A,p)) printf("%s",A);
2. No usar funciones de biblioteca
La primera línea es la cadena que se va a encontrar
La segunda línea es la oración que se va a encontrar
Envía la cadena que se va a encontrar en la primera posición de la oración a ser encontrado
#include
#include
void main()
{
int i,j, la,lb,num=0;
char c,a[120],b[4500];
mientras((c =getchar())!='\n' ) a[num++]=c;a[num]='\0';
num=0;
mientras(( c=getchar())!='\n ') b[num++]=c;b[num]='\0';
la=strlen(a);lb=strlen(b) ;
for(i =0;(lb-i)>=la;i++)
{if(b[i]==a[0])
{for(j=0;j if(b[i+j]!=a[j]) romper; if(j ==la) {printf("%d\ n",i+1);descanso;} } } } 3. Uso de punteros #include "stdio.h" #include "conio.h" #include "string.h" int main() { char str[20]="jsdlaadf",substr[10]="sdf"; char *p=str,*q=substr ; int flag=0; for(;*(p+strlen(substr)-1);p++) p> { for(q=substr;*p==*q&&*q;p++,q++); if(!*q) { bandera=1; romper; } } if(bandera ==1) puts("acordar"); else puts("no acordar"); system("pausa"); }