Discussion:
error con strcasestr()
(demasiado antiguo para responder)
newsf@nospam_grupalia.com
2004-04-02 13:57:26 UTC
Permalink
Hola estoy haciendo un programilla en el que necesito buscar dentro de un
string una serie de caracteres independientemente de si son mayusculas o
minusculas. Poniendo un ejemplo, sería algo así:
#include <stdio.h>
#include <string.h>

main ()
{
char *resultado, *puno, *pdos;

puno = pdos = resultado = NULL;

puno="do";
pdos="valordos dos";

resultado = strstr(pdos, puno);
printf ("%s", resultado);
}

Este ejemplo funciona salvo que sí discrimina entre mayusculas y minusculas.
para evitar esto, tengo que utilizar la funcion strcasestr(), quedando el
programa así:
#include <stdio.h>
#include <string.h>

main ()
{
char *resultado, *puno, *pdos;

puno = pdos = resultado = NULL;

puno="Do";
pdos="valordos dos";

resultado = strcasestr(pdos, puno);
printf ("%s", resultado);
}

Pero cuando lo compilo, me da el siguiente error:
$ gcc -o 1.exe prueba.c
prueba.c: In function `main':
prueba.c:13: warning: assignment makes pointer from integer without a
cast
/cygdrive/Temp/ccurqlKr.o(.text+0x62):prueba.c:
undefined reference to `_strcasestr'
collect2: ld returned 1 exit status

¿Alguien me puede hechar una mano y decirme donde me estoy equivocando?

Gracias,
Fernando
Fernando Arbeiza
2004-04-02 15:09:04 UTC
Permalink
Post by ***@nospam_grupalia.com
Este ejemplo funciona salvo que sí discrimina entre mayusculas y minusculas.
para evitar esto, tengo que utilizar la funcion strcasestr(), quedando el
$ gcc -o 1.exe prueba.c
prueba.c:13: warning: assignment makes pointer from integer without a
cast
undefined reference to `_strcasestr'
collect2: ld returned 1 exit status
¿Alguien me puede hechar una mano y decirme donde me estoy equivocando?
strcasestr() no pertenece al C estándar. Pero puedes hacer esa función
fácilmente, por ejemplo, pasando a strstr la cadena que quieres buscar
pasada a minúsculas y mayúsculas.

Un saludo.
--
Fernando Arbeiza <URL: mailto:***@ono.com>
Crea tu propio Linux: <URL: http://www.escomposlinux.org/lfs-es>
newsf@nospam_grupalia.com
2004-04-02 15:43:13 UTC
Permalink
Hola,
lo había pensado, pero lo que estoy haciendo es para analizar un log de
correo y en el, lo que busco, no siguie una regla fija (puede estar todo en
mayusculas, todo en minusculas, el principio, el final, dos caracteres, tres
caracteres, etc)...

Fernando
Post by Fernando Arbeiza
Post by ***@nospam_grupalia.com
Este ejemplo funciona salvo que sí discrimina entre mayusculas y minusculas.
para evitar esto, tengo que utilizar la funcion strcasestr(), quedando el
$ gcc -o 1.exe prueba.c
prueba.c:13: warning: assignment makes pointer from integer without a
cast
undefined reference to `_strcasestr'
collect2: ld returned 1 exit status
¿Alguien me puede hechar una mano y decirme donde me estoy equivocando?
strcasestr() no pertenece al C estándar. Pero puedes hacer esa función
fácilmente, por ejemplo, pasando a strstr la cadena que quieres buscar
pasada a minúsculas y mayúsculas.
Un saludo.
--
Crea tu propio Linux: <URL: http://www.escomposlinux.org/lfs-es>
Fernando Arbeiza
2004-04-02 16:07:27 UTC
Permalink
Post by ***@nospam_grupalia.com
Hola,
lo había pensado, pero lo que estoy haciendo es para analizar un log de
correo y en el, lo que busco, no siguie una regla fija (puede estar todo en
mayusculas, todo en minusculas, el principio, el final, dos caracteres, tres
caracteres, etc)...
Calla, calla, he confundido strstr() con strpbrk() (esto pasa por
escribir con prisa). Lo único que necesitas para hacer strcasestr() es
convertir las dos cadenas a mayúsculas (o minúsculas) y pasarlo después
a strstr().

Un saludo.
--
Fernando Arbeiza <URL: mailto:***@ono.com>
Crea tu propio Linux: <URL: http://www.escomposlinux.org/lfs-es>
newsf@nospam_grupalia.com
2004-04-02 16:35:44 UTC
Permalink
Buena idea.

Fernando
Post by Fernando Arbeiza
Post by ***@nospam_grupalia.com
Hola,
lo había pensado, pero lo que estoy haciendo es para analizar un log de
correo y en el, lo que busco, no siguie una regla fija (puede estar todo en
mayusculas, todo en minusculas, el principio, el final, dos caracteres, tres
caracteres, etc)...
Calla, calla, he confundido strstr() con strpbrk() (esto pasa por
escribir con prisa). Lo único que necesitas para hacer strcasestr() es
convertir las dos cadenas a mayúsculas (o minúsculas) y pasarlo después
a strstr().
Un saludo.
--
Crea tu propio Linux: <URL: http://www.escomposlinux.org/lfs-es>
Agustin
2004-04-03 18:07:17 UTC
Permalink
Post by ***@nospam_grupalia.com
Hola estoy haciendo un programilla en el que necesito buscar dentro de un
string una serie de caracteres independientemente de si son mayusculas o
#include <stdio.h>
#include <string.h>
main ()
{
char *resultado, *puno, *pdos;
puno = pdos = resultado = NULL;
puno="do";
pdos="valordos dos";
resultado = strstr(pdos, puno);
printf ("%s", resultado);
}
Este ejemplo funciona salvo que sí discrimina entre mayusculas y minusculas.
para evitar esto, tengo que utilizar la funcion strcasestr(), quedando el
#include <stdio.h>
#include <string.h>
main ()
{
char *resultado, *puno, *pdos;
puno = pdos = resultado = NULL;
puno="Do";
pdos="valordos dos";
resultado = strcasestr(pdos, puno);
printf ("%s", resultado);
}
$ gcc -o 1.exe prueba.c
prueba.c:13: warning: assignment makes pointer from integer without a
cast
undefined reference to `_strcasestr'
collect2: ld returned 1 exit status
¿Alguien me puede hechar una mano y decirme donde me estoy equivocando?
Gracias,
Fernando
-----------------------------------------------------
Mensaje enviado desde Venus BBW NEWS

http://news.venusbbw.net/news.php
news://news.venusbbw.net
Juan A. Pastor Gallardo
2004-04-06 15:54:56 UTC
Permalink
Te declaras tres punteros a char, les asignas el valor NULL, pero a un
puntero no puedes asignarle de esta forma (puno="do";) una cadena constante,
necesitas usar la funcion de biblioteca strcpy(); y previamente has de
reservarle al puntero memoria de forma dinámica para guardar el tamaño de la
cadena deseado.
realiza esas correciones
Post by Agustin
Post by ***@nospam_grupalia.com
Hola estoy haciendo un programilla en el que necesito buscar dentro de un
string una serie de caracteres independientemente de si son mayusculas o
#include <stdio.h>
#include <string.h>
main ()
{
char *resultado, *puno, *pdos;
puno = pdos = resultado = NULL;
puno="do";
pdos="valordos dos";
resultado = strstr(pdos, puno);
printf ("%s", resultado);
}
Este ejemplo funciona salvo que sí discrimina entre mayusculas y minusculas.
para evitar esto, tengo que utilizar la funcion strcasestr(), quedando el
#include <stdio.h>
#include <string.h>
main ()
{
char *resultado, *puno, *pdos;
puno = pdos = resultado = NULL;
puno="Do";
pdos="valordos dos";
resultado = strcasestr(pdos, puno);
printf ("%s", resultado);
}
$ gcc -o 1.exe prueba.c
prueba.c:13: warning: assignment makes pointer from integer without a
cast
undefined reference to `_strcasestr'
collect2: ld returned 1 exit status
¿Alguien me puede hechar una mano y decirme donde me estoy equivocando?
Gracias,
Fernando
-----------------------------------------------------
Mensaje enviado desde Venus BBW NEWS
http://news.venusbbw.net/news.php
news://news.venusbbw.net
Loading...