Funciones de strings en C

gets(). Esta función lee un texto escrito desde el teclado y lo almacena en el string indicado

char texto[100];

gets(&texto[0]);

gets(texto);

gets() lee uno a uno de los caracteres y los almacena en el string colocando al final el caracter NULL.

printf(). Mediante esta función escribimos un string por pantalla, el grupo de conversión es %s:

char texto[100];

gets(&texto[0]);

printf("La cadena introducida es: %s",&texto[0]);

Las funciones sprintf() y sscanf() operan de la forma habitual pero afectan a un string:

char texto[100];
int i=10;

sprintf(&texto[0], "i vale %d", i);

Copia i vale 10 en el string texto (en lugar de mostrarlo por pantalla). Por lo que se puede utilizar sprintf() para copiar un string en otro o también para concatenarlos.

char texto[100];
char copia[100];
char ambos[100];

gets(&texto[0]);

/* copiar texto en copia */
sprintf (&copia[0], "%s", &texto[0]);

/* concatenamos texto y copia en ambos */
sprintf (&ambos[0],"%s%s",&texto[0],&copia[0]);

Por su parte sscanf() lee pero extrayendo los datos del string que se le indica en vez del teclado. Suele utilizarse para convertir un string que contiene caracteres numéricos (digitos) en el número que representan, por ejemplo:

int n;
char texto[100];
texto[0] = '5';
texto[1] = '8';
texto[2] = NULL;

sscanf(&texto[0], "%d", &n);  /* ahora n vale 58 */

Hay otras funciones que también operan sobre strings. Para poder utilizarlas tenemos que incluir el fichero string.h

strcpy() copia un string en otro. strcat() concatena strings:

char origen[100];
char destino[100];

/* destino <- origen */
strcpy(&destino[0],&origen[0]);

/* destino <- destino + origen */
strcat(&destino[0], &origen[0])

strlen() devuelve el número de caracteres (longitud) del string indicado:

char text[100];
int l;

gets(&texto[0]);

l = strlen(&texto[0]);

printf("%s tiene %d caracteres", texto,l);

La función strcmp compara alfabéticamente dos strings indicando cual va antes:

char texto[100];
char texto2[100];
int r;

r = strcmp(&texto1[0], &texto2[0]);

if (r == 0) {
    printf("Son iguales");
} else if (r  0) {
    printf("texto 2 va antes (y 1 despues)");
}

Fuente
Libro “C con ejemplos”

Acerca de Moycas
Developer Web @moycc

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: