Autor
|
Tema: [c]subcadenas porque no funciona? (Leído 2,769 veces)
|
daryo
|
la salida es : 5 -1 -1 alguna idea ? #include <stdio.h> #include <string.h> int findstr(char *cadena, char *subcadena, int pos_ini) { int i, j; for(i=pos_ini; cadena[i]!='\0'; i++) for(j=0; subcadena!='\0' && cadena[i+j]==subcadena[j]; j++) if(subcadena[j+1]=='\0') return i+1; return -1; } int main() { char cadena[]="c a calar calar comer calar garbanzos"; char subcadena[]= "cala"; printf("%i\n", findstr (cadena , subcadena , 0)); printf("%i\n", findstr (cadena , subcadena , 0)); printf("%i\n", findstr (cadena , subcadena , findstr (cadena , subcadena , 0))); return 0; }
|
|
|
En línea
|
buenas
|
|
|
kmilinh0
Desconectado
Mensajes: 16
|
mi salida es: 5 5 11
|
|
|
En línea
|
|
|
|
0xDani
Desconectado
Mensajes: 1.077
|
subcadena!='\0'
Qué es eso? Ni siquiera te lanza un warning?
|
|
|
En línea
|
I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!
I code for $$$ Hago trabajos en C/C++ Contactar por PM
|
|
|
amchacon
Desconectado
Mensajes: 1.211
|
subcadena!='\0'
Qué es eso? Ni siquiera te lanza un warning? Es legal, lo que hace comparar el valor del puntero char con el ASCII de '\0'. Aunque evidentemente, no es eso lo que quería hacer. Supongo que se le ha olvidado el [j]
|
|
|
En línea
|
|
|
|
daryo
|
siendo sinceros es un code que me pasaron no es ni siquiera hecho por mi aun asi me parecio raro que no funcionara por cierto 0xdani es mas estricto que el mismo compilador
|
|
|
En línea
|
buenas
|
|
|
0xDani
Desconectado
Mensajes: 1.077
|
Es legal, lo que hace comparar el valor del puntero char con el ASCII de '\0'.
Aunque evidentemente, no es eso lo que quería hacer. Supongo que se le ha olvidado el [j]
Claro que es legal, por eso le he preguntado si no le lanza un warning, por ejemplo de comparación entre puntero y entero. por cierto 0xdani es mas estricto que el mismo compilador Pues debe ser poco estricto el compilador xD
|
|
|
En línea
|
I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!
I code for $$$ Hago trabajos en C/C++ Contactar por PM
|
|
|
amchacon
Desconectado
Mensajes: 1.211
|
Claro que es legal, por eso le he preguntado si no le lanza un warning, por ejemplo de comparación entre puntero y entero. No da warning porque es una comparación con 0, y esa comparación si tiene sentido (para comprobar si es un puntero válido).
|
|
« Última modificación: 22 Junio 2013, 00:57 am por amchacon »
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
¿Porque no funciona?
Programación Visual Basic
|
& eDu &
|
9
|
3,584
|
15 Abril 2008, 01:11 am
por seba123neo
|
|
|
porque esto no me funciona?
Programación Visual Basic
|
Sai-To
|
3
|
2,348
|
31 Mayo 2008, 19:52 pm
por seba123neo
|
|
|
¿Porque no funciona mi applet?
Java
|
andres52
|
3
|
4,520
|
20 Abril 2009, 20:00 pm
por andres52
|
|
|
Porque no funciona?
Programación C/C++
|
dgg006
|
3
|
4,891
|
21 Octubre 2011, 01:50 am
por dewolo
|
|
|
[CSS] ¿Porque no funciona?
Desarrollo Web
|
Ori-chan
|
5
|
3,266
|
24 Enero 2013, 16:38 pm
por Ori-chan
|
|