viernes, 16 de diciembre de 2011

C++ - Leccion 5

Strings en C++ - II Parte

Cuando trabajamos con cadenas largas y queremos separarlas por piezas pequeñas, nos son muy útiles las funciones: find() y substr(), dichas funciones son las más conocidas para trabajar con strings en C++, a continuación les mostraré como trabajan con un ejemplo de guia:

No olvidemos la librería: #include <string>

Bien para comenzar tenemos la cadena:

 string s1="AI-ANALISIS Y DISENO-3-11-12-10";


Supongamos que queremos separar las palabras que estan separadas por los guiones (-) e imprimirlas en consola.
Lo que haremos es buscar el primer "-" de la cadena resultante y extraer lo que esta antes de ese guión, seguido de esto borrar una parte de la cadena hasta el guión encontrado, así vamos cortando pieza por pieza la cadena:





Bien el código sería el siguiente:

#include <cstdlib>
#include <iostream>
#include <string>
using namespace std;

int main(int argc, char *argv[])
{
   
  string s1="AI-ANALISIS Y DISENO-3-11-12-10";
 
  string aux=s1;

  int pos=aux.find("-"); // aqui está la función find que busca la posicion de una cadena  dentro  de //otra cadena
  aux = aux.substr(pos+1); // aqui está la función substr que corta la cadena desde la posición 
//indicada (pos+1), es decir corta todo hasta el guión (posición  = pos)
  cout<<aux<<endl;
 
  pos=aux.find("-");
  aux = aux.substr(pos+1);
  cout<<aux<<endl;
 
  pos=aux.find("-");
  aux = aux.substr(pos+1);
  cout<<aux<<endl;
 
  pos=aux.find("-");
  string nota1=aux.substr(0,pos);
  aux = aux.substr(pos+1);
   cout<<"Nota1(s):"<<nota1<<endl;
 
 
  pos=aux.find("-");
  string nota2=aux.substr(0,pos);
  aux = aux.substr(pos+1);
   cout<<"Nota2(s):"<<nota2<<endl;

 
  pos=aux.find("-");
  string nota3=aux.substr(0,pos);
  aux = aux.substr(pos+1);
   cout<<"Nota3(s):"<<nota3<<endl;
 

   cout<<"--------FIN--------"<<endl; 
    system("PAUSE");
    return EXIT_SUCCESS;
}





No hay comentarios:

Publicar un comentario