You are not allowed to view links.
Register or
LoginPor mycrox.
STRINGSvaya, por fin un nuevo capítulo, pido perdón a los que esperaron tanto tiempo, ahora vamos a la acción
¿Que son los strings?Los strings son ... mm... cadenas de caracteres, osea, un vector de caracteres que se guardan en memoria. por ejemplo "mycrox" es una cadena de texto o caracteres. veamos algo más gráfico.

Como podrán visualizar, cada caracter (letra) se guarda en una posicion de memoria. 3FA100 es una posicion de memoria don de se guarda "M", 3FA101 es la siguiente posicion de memoria donde se guarda "Y" y así sucesivamente...
¿Pero que diferencia tiene un vector de caracteres con un vector de numeros?Bueno, la principal diferencia es en el manejo de los vectores. En un vector de caracteres (strings), tengo funciones específicas tales como strcmp, strcat, strlen, strcpy, etc, etc. donde puedo jugar con mi cadena como yo quiera. el manejo es total, es decir, la cadena "mycrox" se trata como UNA CADENA y no como 6 LETRAS... espero que se entienda.
en cambio, en un vector de numeros, se trata cada numero como tal, simplemente un numero.
por ejemplo:int vector[7]={6,4,7,8,5,2}acá el numero
6 no tiene relacion con el numero
4, solo que estan posicionadas continuamente en memoria, nada más.
aunque en los strings, tambien se puede tratar caracter a caracter, se pueden tratar tambien como un todo, es decir, COMO UNA CADENA DE CARACTERES y no como X LETRAS
Funciones basicas de stringsPara utilizar manejo de strings, es necesario incluir la libreria "string.h" en el código fuente, esta librería es estandar de C, por lo que en cualquier compilador, funcionará, incluso en LINUX (o UNIX).
Existen muchas funciones, pero esta vez nos centraremos solo en 4, luego ustedes podrán averiguar por las de ustedes las demases.
FUNCION STRCPY
La funcion strcpy, copia una cadena en otra cadena supuestamente vacía, si no lo está, la sobreeescribe.
veamos:
Explicación del código:- Pido una cadena de texto.
- Muestro en pantalla la cadena ingresada
- Muestro en pantalla la cadena vacia con basura
- copio en la cadena vacia, la cadena ingresada
- Muestro en pantalla la cadena que estaba vacia pero que ahora contiene la cadena anterior.
Veamos la ejecución:
FUNCION STRCAT
esta funcion, concatena dos cadenas, es decir, las UNE o las PEGA.
veamos:
Explicación del código:- Pido una cadena
- Pido otra cadena
- Las imprimo en pantalla ambas
- Llamo a la funcion STRCAT
- Imprimo la NUEVA cadena concatenada.
Veamos su ejecucion:
FUNCION STRLEN
esta funcion, me retorna la cantidad de caracteres que posee una cadena de caracteres.
veamos el código:
Explicación del código:- Pido una cadena
- llamo a strlen y guardo su retorno en a.
- imprimo "a" que es la cantidad de caracteres que tiene la cadena.
También, se puede hacer de la siguiente manera, obviando la variable a.

En este caso, se obvia la variable "a" y se imprime directamente.
Veamos la ejecucion:

Sencillo no?
FUNCION STRCMP
esta funcion, compara dos cadenas, si estas SON IGUALES, retorna CERO, si no lo son, retorna cualquier valor distinto de CERO.
Veamos el código:
Explicación del código:- Pido una cadena
- Pido otra cadena para comparar
- Llamo a la funcion strcmp, como verán, uso el operador
NOT, ya que si son iguales, me retorna CERO, y uso el NOT para que me de POSITIVO.
- Si no son iguales, imprimo que no lo son.
Veamos el ejemplo en ejecucion donde las cadenas son iguales:

Veamos otro ejemplo en ejecucion donde las cadenas NO son iguales:

creo que quedo claro strcmp.
VariosInicializacion de strings.
Los strings tambien pueden ser inicializados, tal como
int a=5;. Esto se hace de la siguiente manera:
Inicializacion de vectores de strings.
Un string, ya es un vector, por lo que un vector de strings seria una matriz.
Formato %sEl formato
%s que se da en los
scanf y los
printf, indica que se trata de strings, osea, un vector de caracteres. por lo que al momento de imprimir, no es necesario imprimir caracter a caracter, ya que se puede imprimir una cadena completa de una sola vez. esto gracias a
%s.lo mismo con
scanf, %s, indica que leera hasta encontrar un espacio o enter, y todo lo tecleado se asumirá que forma parte de la cadena.
Siempre charlos strings, son siempre
char, por lo que internamente se guardan los valores ASCII de cada caracter, por ejemplo el "A" es el 65 en ASCII (creo), pero al ser CHAR, se imprimira el "A", en cambio si pongo %i, se imprimira el 65.
veamos un ejemplo:

O es lo mismo que:

veamos la ejecucion:

Bueno, cualquier duda, no vacilen en preguntar aca

Saludos, nos vemos.