Foros del Web » Programación para mayores de 30 ;) » C/C++ »

funcion strcmp c

Estas en el tema de funcion strcmp c en el foro de C/C++ en Foros del Web. como funciona la funcion strcmp por ejemplo yo tengo if(strmp(p->nombre, aux->nombre)<0) ----------------- ejemplo2 if(!strmp(temp1,tem2))...
  #1 (permalink)  
Antiguo 17/11/2011, 15:36
 
Fecha de Ingreso: septiembre-2011
Mensajes: 25
Antigüedad: 12 años, 7 meses
Puntos: 0
funcion strcmp c

como funciona la funcion strcmp

por ejemplo yo tengo




if(strmp(p->nombre, aux->nombre)<0)


-----------------

ejemplo2

if(!strmp(temp1,tem2))
  #2 (permalink)  
Antiguo 17/11/2011, 15:50
 
Fecha de Ingreso: marzo-2011
Mensajes: 54
Antigüedad: 13 años, 1 mes
Puntos: 11
Respuesta: funcion strcmp c

[ironia = on] Te voy a pasar un enlace con toda clase de información, pero no lo pases a amigos, que me ha costado buscarlo [ironia = off]
http://lmgtfy.com/?q=strcmp+wikipedia
Ahora en serio, esto es lo primero que debes haces.
  #3 (permalink)  
Antiguo 17/11/2011, 15:56
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: funcion strcmp c

strcmp espera dos punteros a char y compara caracter a caracter.

Si las cadenas son iguales devuelve 0. Si la primer cadena es mas grande que la segunda devuelve un numero positivo. Si devuelve negativo la primer cadena es menor.

Sabiendo esos valores, puedes usarla donde quieras y en cualquier if, while, o for...

Saludos
  #4 (permalink)  
Antiguo 17/11/2011, 16:27
 
Fecha de Ingreso: septiembre-2011
Mensajes: 25
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: funcion strcmp c

lo q no entiendo es como los compara

caracter por caracter comparando las letras

o cuenta los caracteres de cada cadena
o por ejemplo en un codigo lo usan para ordenar alfabeticamente los miembros de una lista
  #5 (permalink)  
Antiguo 17/11/2011, 16:39
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: funcion strcmp c

Esa funcion se puede escribir asi:

Código C:
Ver original
  1. int strcmp(char * a , char * b){
  2.     int i = 0;
  3.     while (a[i] != '\0' && b[i] != '\0') {
  4.          if (  a[i] != b[i] ) return (a[i] - b[i]);
  5.          i++;
  6.     }
  7.      if ( a[i]  == '\0' && b[i] == '\0' ) return 0;
  8.      return (a[i] - b[i])
  9. }

Como veras compara caracter a caracter.

Logicamente se usa para ordenar alfabeticamente una lista. La mejor forma de ver esto es probar con ejemplos....el compilador no muerde si le hacemos hacer tarea al pedo.

Saludos
  #6 (permalink)  
Antiguo 17/11/2011, 20:41
Avatar de DataLore  
Fecha de Ingreso: junio-2008
Mensajes: 58
Antigüedad: 15 años, 10 meses
Puntos: 5
Respuesta: funcion strcmp c

Para ser estrictos es una comparación a nivel código ascii. Vendría a ser casi como una búsqueda en un diccionario. Comparas dos palabras la que está antes en el diccionario es menor que la otra. Importante: el 'casi' es porque para palabras con caracteres especiales también están sujetos a lo mismo por lo cual 'año' es mayor que 'aro' siendo que en un diccionario están al revés. Esto es porque la r en la tabla ascii viene antes que la ñ.

Etiquetas: funcion, strcmp
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:25.