Académique Documents
Professionnel Documents
Culture Documents
Programacin en C/Cadenas de caracteres caracteres",1024) ) { ... Estos dos ejemplos son versiones simplificadas de funciones provistas por la biblioteca estndar de C a travs del encabezado string.h. Nuestro largo_cadena() es similar al strlen() de la biblioteca estndar, y unir_cadenas() se asemeja al strncat(). Si bien ver estas versiones nos sirven para entender las cadenas en C, en general ser preferible usar las funciones provistas por la biblioteca estndar, ya que podemos estar seguros que van a estar programadas de la mejor manera posible. Entre las funcione que provee la biblioteca estndar de C, las ms importantes son: largo = strlen(cadena) // Para obtener el largo de una cadena strcpy(destino, origen) // Copia el contenido de origen en destino // destino debe ser lo suficientemente grande strcat(destino, origen) // Agrega el contenido de origen al final de destino // destino debe ser lo suficientemente grander resultado = strcmp(cadena1, cadena2) // Compara dos cadenas // devuelve un valor menor, igual o mayor que 0 segn si cadena1 es menor, // igual o mayor que cadena2, respectivamente. posicion = strchr(cadena, caracter) // Devuelve la posicin en memoria de la primer // aparicin de caracter dentro de cadena posicion = strstr(cadena,subcadena) // Devuelve la posicin en memoria de la primer // aparicin de subcadena dentro de cadena Veamos algunos ejemplos usando <string.h> : #include <stdio.h> #include <string.h> ... char color[] = "rojo"; char grosor[] = "grueso"; ... char descripcion[1024]; strcpy(descripcion, "Lapiz color "); strncat(descripcion, color, 1024); strncat(descripcion, " de trazo ", 1024); strncat(descripcion, grosor, 1024); // descripcion contiene "Lapiz color rojo de trazo grueso" ... void intercambiar(char vector[], int pos1, int pos2); void invierte_cadena(char cadena[]) { int largo = strlen(cadena); for (int i=0; i < (largo/2); i++) {
Programacin en C/Cadenas de caracteres intercambiar(cadena, i, (largo-1)-i); } } void intercambiar(char vector[], int pos1, int pos2) { char aux=vector[pos1]; vector[pos1]=vector[pos2]; vector[pos2]=aux; }
Licencia
Creative Commons Attribution-Share Alike 3.0 Unported //creativecommons.org/licenses/by-sa/3.0/