strstr

Sintaxis

#include <string.h>

char *strstr(const char *s1, const char *s2);

Descripción

Esta función encuentra la primera ocurrencia de la ristra s2 en la ristra s1.

Valor devuelto

Un puntero a la primera ocurrencia de s2 dentro de s1, o NULL si s2 no ha sido encontrado.

Portabilidad

ANSI, POSIX

Ejemplo

El procedimiento sustituyeRistra borra una subristra de una ristra y la sustituye por otra. La ristra que se va a modificar se pasa como primer parámetro, la subristra que se borra es el segundo parámetro y la subristra por la que se sustituye es el tercer parámetro.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void quitaLF(char *s){
   int l=strlen(s);
   if(l > 0 && s[l-1]=='\n') s[l-1]='\0';
}

void sustituyeRistra(char *amodificar, char *buscar, char *reemplazar){
   char *encontrada;
   char resto[strlen(amodificar)+1];
   encontrada=strstr(amodificar,buscar);
   if(encontrada!=NULL){
      strcpy(resto,encontrada+strlen(buscar));
      encontrada[0]='\0';
      strcat(amodificar,reemplazar);
      strcat(amodificar,resto);
   }
}
int main (){
   const int TAM=1024;
   char modificar[2*TAM], buscar[TAM], sustituir[TAM];
   printf("Introduzca la ristra a modificar\n");
   fgets(modificar,TAM,stdin);
   quitaLF(modificar);
   printf("Introduzca la ristra a buscar\n");
   fgets(buscar,TAM,stdin);
   quitaLF(buscar);
   printf("Introduzca la ristra sustituta\n");
   fgets(sustituir,TAM,stdin);
   quitaLF(sustituir);
   sustituyeRistra(modificar,buscar,sustituir);
   printf("Resultado\n%s\n",modificar); 
   return 0;
}