Programación General > C/C++
Comparar chars
(1/1)
JoniJnm:
Hola,
Estoy intentando hacer una función que me permita saber cuántas carpetas atrás tiene una ruta, por ejemplo:
../../mi_carpeta tiene hacia atrás dos carpetas. Pues en la función tengo esto:
--- Código: C ---int carpetas_atras(char *ruta) { int aux = 0; int i; for (i=0; i<strlen(ruta); i++) { if (ruta[i] == "." && ruta[i+1] == "." && ruta[i+2] == "/") { // => ../ aux++; } //test => ruta[i] = NULL; } return aux;}
Pues no sé por qué me da error en la linea de comparación, este es el error:
"comparison between pointer and integer"
He probado de todo: (char*)ruta, (char)ruta, (char*)(ruta + i), (char)(ruta + i), pero ninguno funciona xD
Aunque alguno de los de arriba no me salta error, si hago una asignación sí:
(char*)(ruta + i) = ""
Qué debería poner? O es que en C no se puede acceder a un elemento de un "string"?
Saludos!
Eternal Idol:
El problema es que estas usando "" y eso es un cadena y no un caracter, por eso el erro te marca que estas comparando un puntero (la direccion de comienzo de la cadena) con un entero (el caracter). Un caracter se expresa con '': 'X' por ejemplo.
PD. Lo demas no lo mire.
Navegación
Ir a la versión completa