Blog de Abelardo Jara Berrocal: Ubuntu, electronica y software libre

Diciembre 7, 2007

Introducción a la STL string en C++: conversion entre char* y string

Archivado en: Programacion C++ en Linux, Programacion C++ en Windows — Abelardo Jara @ 4:49 pm

Aqui posteo un listado de un programa para manipular strings o cadenas de caracteres (char *) y realizar conversiones entre ambos tipos de datos.

Aqui empieza el programa, he tratado de comentarlo para hacer mas facil su comprension:

#include “stdafx.h” //precompiled header del Visual C++

#include <iostream>
#include <string>
#include <sstream> //para usar ostringstream
#include <vector>

using namespace std;

template < class T >
string ToString(const T &arg)
{
    ostringstream    out;

out << arg;

return(out.str());
}

int main(int argc, char* argv[])
{

    char *cadena1;
cadena1 = new char[30];
string cadena2;

strcpy(cadena1,”El numero”);
strcat(cadena1,” 40″);

    //conversion de char*  a string
//string solo acepta crear en base a un char*

cadena2 = string(cadena1) + ” ” + ToString(50);

    //conversion de string a char*
//no hacer asignacion directa de punteros porque
//string::c_str devuelve const char* asi que habra
//error si se modificara cadena1

strcpy(cadena1, cadena2.c_str());

//Definimos vector de cadenas
vector<string> SS;

SS.push_back(“El numero es 10″);
SS.push_back(“El numero es 20″);
SS.push_back(“El numero es 30″);
    //podemos empujar una cadena char* al final del vector
SS.push_back(cadena1);
    //podemos empujar una string
SS.push_back(cadena2);

cout<<”Bucle por indice:”<<endl;
for (unsigned int i=0; i < SS.size(); i++) {
cout<< SS[i] << endl;
};

cout<<”Bucle usando iterador:”<<endl;
vector<string>::iterator ii;
for (ii = SS.begin(); ii < SS.end(); ii++) {
cout<< *ii << endl;
};

cin.get();
return 0;

}

Espero que les sea de utilidad

Aún no hay comentarios »

Aún no hay comentarios.

Canal RSS de los comentarios de la entrada. URI para TrackBack.

Deja un comentario

Blog de WordPress.com.