Cadenas Conceptos Basico

Bueno.. parece que he perdido, la continuidad de los post..!
Bue... entro aun tema llamado conceptos basicos..!!

Como el tema lo resume todo, se explicara algunas formas, conceptos, ejemplos y cosas que nos introduscan a los conceptos basicos del string.

Bien al usar string y string.h la verdad como ya sabemos casi no hay diferencia, eso a ecepto de algunas funciones que se pueden realizan dentro de ellas, bien ya emos visto, que las cadenas se declaran como una variable mas de C++. Tambien a las cuales se les pueden dar valores. (...)

Que? Valores a las cadenas? Eso es pasible?....

Claro ya que como son, variables se les puede asignar un valor predeterminado por el usuario.
Ejemplo:


#include <string>  
#include <iostream> 
using namespace std;  
main() 
{  
string mensaje;   
mensaje = "Hola";   
cout << mensaje; 
system("pause");  
} 
 



Acaso ven una diferencia?? Claro ..!!

Hay diferencia de como declaramos, la variable de tipo cadena, normalmente la hubieramos declarado, como char mensaje; Pero es una cosa sorprendente de string que se pueden declarar variables de dos formas. Tambien se le puede asignar un valor, bueno obvio que no se pueden dar valores, enteros ni flotantes, solo valores de caracter como vemos en el ejemplo.

Esto es un concepto muy basico, muy sencillo que ya todos los que emos programado sabemos bien como funciona, y para los que no pues alli esta de una forma que se puede entender. Bien mejor vamos a un concepto un poco mas complicado, veamos lo....


 
#include <string>  
#include <iostream> 
using namespace std;  
main() 
{  
string texto1, texto2 = "Hola ", texto3("Que tal");
texto1 = texto2 + texto3 + " estas? "; 
cout << texto1 << "\n"; 
string subcadena (texto1, 2, 6); 
cout << subcadena << "\n"; 
string subcadena2; 
subcadena2 = texto1.substr(0, 5);  
texto1.insert(5, "Juan "); 
cout << texto1 << "\n"; 
texto2.replace(1, 2, "ad"); 
cout << texto2 << "\n"; 
cout << "La longitud de texto1 es " << texto1.size() << "\n"; 
cout << "La tercera letra de texto1 es " << texto1[2] << " o bien " << texto1.at(2) << "\n"; 
if (texto2 == "Hada ") 
cout << "Texto 2 es Hada\n"; 
system("pause");  
} 


Pisado ..!! No Creen..!! Y el resultado seria este....

Hola Que tal estas?
la Que
Hola Juan Que tal estas?
Hada
La longitud de texto1 es 25
La tercera letra de texto1 es l o bien l
Texto 2 es Hada

Asi es como se miraria el compilarlo.

Eso amigos son conceptos basicos cuando usamos, string, como ya sabemos string tien funciones unas de las cuales las acabamos de ver, en el ejemplo anterior se pueden ver funciones, de los caracteres que contiene string, tambien se puedenb aplicar esas funciones, para realizar algoritmos, mucho mas elaborados.Por ejemplo dentro de esas funciones hay una fincion muy peculiar llamada find, a lo que probiene su significado en ingles, Encontrar, bien pues find, realiza una busqueda detallada, para ver si dicho caracter pertenece a una subcadena.

Bien eso es todo amigos saludos.. Y sigan estudiando y leyendo..!!

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

Librerias En C++

Saludos, nuevamente con un post diario, uno cada noche jejeje..!!

Bien, como ya sabrás en c, se utilizan mucho el uso de las ya famosas librerías, obvio que ya estarás al tanto sobre que es esto, bien para empezar a programar debemos especificar al compilador que tipo de librerías usar, dependiendo de esto podemos realizar tareas específicas, dentro de un algoritmo.

Vale para declarar una incluir aún librería, lo primero que se tiene que hacer es colocar al inicio del programa: #include, luego podemos poner símbolos como <nombre de tu librería> ó "nombre de tu librería". 

Por ejemplo:

#include<iostream>
#include"iostream"

Como podemos ver de las dos formas se es posible incluir una librería. Pero alguna vez te has preguntado que librería usar?,  en mi caso si me he lo preguntado, por esto he investigado y encontrado unas cuantas librerías, para usar en nuestros algoritmos. Te dejo una lista para que puedas ver.

  • fstream: Flujos hacia/desde ficheros. Permite la manipulación de archivos desde el programar, tanto leer como escribir en ellos.
  • iosfwd: Contiene declaraciones adelantadas de todas las plantillas de flujos y sus typedefs estándar. Por ejemplo iostream.
  • iostream: Parte del a STL que contiene los algoritmos estándar, es quizá la mas usada e importante (aunque no indispensable).
  • list: Parte de la STL relativa a contenedores tipo list; listas doblemente enlazadas
  • math: Contiene los prototipos de las funciones y otras definiciones para el uso y manipulación de funciones matemáticas.
  • memory: Utilidades relativas a la gestión de memoria, incluyendo asignadores y punteros inteligentes(auto_ptr).
  • new: Manejo de memoria dinámica
  • numeric: Parte de la librería numérica de la STL relativa a operaciones numéricas.
  • ostream: Algoritmos estándar para los flujos de salida.
  • queue: Parte de la STL relativa a contenedores tipo queue (colas de objetos).
  • stdio: Contiene los prototipos de las funciones, macros, y tipos para manipular datos de entrada y salida.
  • stdlib: Contiene los prototipos de las funciones, macros, y tipos para utilidades de uso general.
  • string: Parte de la STL relativa a contenedores tipo string; una generalización de las cadenas alfanuméricas para albergar cadenas de objetos. Muy útil para el fácil uso de las cadenas de caracteres, pues elimina muchas de las dificultades que generan los char
  • typeinfo: Mecanismo de identificación de tipos en tiempo de ejecución
  • vector: Parte de la STL relativa a los contenedores tipo vector; una generalización de las matrices unidimensionales C/C++.
Estas son algunas librerias que se pueden usar, o que se pueden incluir, cuando realizamos un algoritmo.

Bueno eso es todo el post, por el dia de hoy espero y sea de ayuda para algunos pocos o muchos jejee..!! Hasta luego ^_^!!
  

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

¿Que es string.h?


Hola de nuevo con un nuevo post, recapitulando el tema pasado, luego de publicar un pequeño consejo de cómo utilizar o crear un algoritmo de tipo cadena, como pedir e imprimir valores usando cadenas. Bien a lo que voy es que luego de leer me quede con la duda de saber que era string.h, ya que en el post anterior solo especifique usar string sin el .h, ahora que ya se lo que es string.h se los explicare de tal modo que sea comprensible para todo publico.

Bien string.h forma parte de las muchas librerías que yacen en C, cosa que sabemos pero esta librería, contiene la definición de macros, constantes, funciones y tipos, nos es de mucha utilidad para trabajar con cadenas de caracteres.  Unas de las constantes de string.h, es…

NULL: Que relativamente es un macro que representa la constante puntero nulo; esta representa un valor de puntero que no apunta a ninguna dirección valida de objeto alguna en memoria ok...!

size_t: ES un tipo entero sin signo positivo; es el tipo devuelto por el operador sizeof, normalmente esta constante se suele utilizar para indicar el numero de caracteres que contiene una cadena, en otras palabras el numero de letras, obviamente contando a partir del 0, el manejo de también suele indicar el número exacto de letras pero esta sin contar el 0.
Dentro de esta librería hayamos funciones específicas, que se realizan o que se utilizan para hacer un buen uso de ella.

Por ejemplo tenemos:

 memcpy: copia n bytes entre dos áreas de memoria que no deben solaparse.
 memmove: copia n bytes entre dos áreas de memoria; al contrario que memcpy las áreas deben solaparse.
 memchr: busca un valor a partir de una dirección de memoria dada y devuelve un puntero a la primera ocurrencia del valor buscado o NULL si no se encuentra.
 memcmp: compara los n primeros caracteres de dos áreas de memoria.
 memset: sobre escribe un área de memoria con un patrón de bytes dado.
 strcat: añade una cadena al final de otra.
 strncat: añade los n primeros caracteres de una cadena al final de otra.
 strchr: localiza un carácter en una cadena, buscando desde el principio.
 strrchr: localiza un carácter en una cadena, buscando desde el final.
 strcmp: compara dos cadenas alfabéticamente ('a'!='A').
 strncmp: compara los n primeros caracteres de dos cadenas numéricamente ('a'!='A').
 strcoll: compara dos cadenas según la colación actual ('a'=='A').
 strcpy: copia una cadena en otra.
 strncpy: copia los n primeros caracteres de una cadena en otra.
 strerror: devuelve la cadena con el mensaje de error correspondiente al número de error dado.
 strlen: devuelve la longitud de una cadena .
strspn: devuelve la posición del primer carácter de una cadena que no coincide con ninguno de los caracteres de otra cadena dada.
 strcspn: devuelve la posición del primer carácter que coincide con alguno de los caracteres de otra cadena dada.
 strpbrk: encuentra la primera ocurrencia de alguno de los caracteres de una cadena dada en otra.
 strstr: busca una cadena dentro de otra.
 strtok: parte una cadena en una secuencia de tokens.
 strxfrm: transforma una cadena en su forma de colación .
 strrev: invierte una cadena.

En internet cuando se busca un algoritmo de tipo cadenas, osea char siempre nos encontramos con estas funciones muy raras...!! Cosa que no entendemos, con esta breve explicacion sera un poco mas sencillo comprender, varios algoritmos que se encuentran en la web, ya sabemos sus nombres y para que son utilizados, ahora nos toca utilizarlas.

Bueno esto ha sido todo, por el dia de hoy en esta esplendida noche..!!

Saludos y cuidence..!!

NOTA: No olvides que para usar string.h es necesario tener instalado la libreria en nuestro Dev C, en cada descripcion de cada funcion lo dejo con link directo a wikipedia para saber mas sobre cada funcion.

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS