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