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

[0] Índice de Mensajes

Ir a la versión completa