• Sábado 14 de Diciembre de 2024, 12:09

Autor Tema:  Comparar chars  (Leído 735 veces)

JoniJnm

  • Nuevo Miembro
  • *
  • Mensajes: 3
  • Nacionalidad: es
    • Ver Perfil
    • http://www.jonijnm.es
Comparar chars
« en: Sábado 25 de Abril de 2009, 12:57 »
0
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
  1. int carpetas_atras(char *ruta) {
  2.     int aux = 0;
  3.     int i;
  4.     for (i=0; i<strlen(ruta); i++) {
  5.         if (ruta[i] == "." && ruta[i+1] == "." && ruta[i+2] == "/") { // => ../
  6.             aux++;
  7.         }
  8.         //test => ruta[i] = NULL;
  9.     }
  10.     return aux;
  11. }
  12.  

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

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Comparar chars
« Respuesta #1 en: Sábado 25 de Abril de 2009, 16:08 »
0
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.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.