Tutorial de Lenguaje C                                                                                               Dr. Roberto Gómez


LAS CADENAS DE CARACTERES:  LOS STRINGS


                1. char *nombre;
                2. char nombre[];
                3. char nombre[20]
 


Lectura de strings



prog29.c Ejemplo lectura de strings

#include <stdio.h>

int main()

{

                        char nombre[]=''Cachafas'';
                        char *name =''Cachafas'';
                        char *nom;
                        printf(''De el nombre:'');
                        scanf(''%s'',nombre);
                        printf(''Give the name: '');
                        scanf(''%s'',name);
                        printf(''Le nom svp: '');
                        scanf(''%s'',nom);
}

 


Impresión de strings



prog30.c Ejemplo impresión de strings

#include <stdio.h>

int main()

{

                        char nombre[ ], *direc;

                        nombre = ['T','o','t','o'];
                        direc = ''12 Bld. Jourdan'';

                        printf(''Nombre: %s \n'',nombre);
                        /* Error cadena no termina en NULL */

                        printf(''Direcci'on: %s \n'',direc);
                        /* Todo bien cadena termina en NULL */
}
 


Funciones relacionadas con strings

Para poder hacer uso de estas funciones es necesario incluir la el archivo de encabezado:

#include <string.h>

Definidas dentro de <stdlib>, algunas son:

atof()                     convierte el string en double;
atoi()                     convierte el string en entero;
sprintf()                 equivalente a printf() solo que la salida se almacena en un string, en vez de
                                imprimir en pantalla;
strcpy()                 copia dos strings;
strcat()                 agrega una cadena a otra;
strcmp()               compara una cadena con otra;
strchcr()               localiza primera instancia de un caracter dentro de un string;
strspn()                 determina y regresa la longitud del segmento inicial de una; cadena que consiste
                                solo los caracteres contenidos en otra
strstr()                   localiza la primera ocurrencia de un string dentro de otro;
strtok()                 divide la cadena s1 en tokens;
strerror()              proyecta errornum en un string;
strlen()                 determina la longitud de un string.

Existen algunas funciones para caracteres, (<ctype.h>):

isdigit()               deterina si el argumento es un d'igito (0-9);
isalpha()            determina si el argumento es una letra (A-Z o a-z);
touupeer()        convierte min'usculas en may'usculas;
tolower()           convierte may'ucsculas en min'usculas.
 


Asignación de strings


                                    1. asignación directa de una constante string;
                                    2. uso de la función strcpy()
prog31.c Ejemplo asignación de strings

#include <stdio.h>
#include <string.h>  
   
int main()

{

                    char nombre[30], nom[30], name[70];
                    char *frase, *phrase;

                    phrase = ''Hola, bonito dia'';
                    printf("Valor phrase: %s \n'',phrase);                    
                    phrase[10] = 'X';

                    printf("Valor phrase: %s \n'',phrase);

                    strcpy(nombre,''Adios'');
                    printf("Valor nombre: %s \n'',nombre);
                    nombre[10] = '@';
                    printf("Valor nombre: %s \n'',nombre);

                   
                    name = strcat(nombre, phrase)
;

                    printf("Valor nom: %s \n'',nom);
                    printf("Valor name: %s \n'',name);

}

 


prog32.c Ejemplo uso strings

/* Comparación de dos strings usando función strcmp() */

#include <stdio.h>

int main()
{

                    char nombre1[20], nombre2[20];
                    printf(''De el primer nombre:'');
                    scanf(''%s'',nombre1);
                    printf(''De el segundo nombre:'');
                    scanf(''%s'',nombre2);
                    n = strcmp(nombre1, nombre2);
                    if (n == 0)
                        printf(''Nombres iguales \n'');
                    else
                        if (n >  0)
                                printf(''Primer nombre mas grande que el segundo \n'');
                        else
                                printf(''Primer nombre mas chico que el segundo \n'');
}
 

Ejercicio strings

  1. Capture una cadena de caracteres. Despliegue la longitud de esta, cuente el numero de volcales y consonantes. Despliegue estos resultados y por último convierta todas las letras mayúsculas en minúsculas y viceversa.



MENÚ PRINCIPAL