* Ersätter alla förekomster av ett ord med en sträng oberoende av gemener/versaler.
* Hitta ord oberoende av gemener/versaler.
* Ta bort alla mellanrum.
* Gör om en float till en string.
* Läsa in tal, både ints och floats, från en string..
Jag skulle nog löpa igenom texten bokstav för bokstav för att hitta förekomster av de kriterier du satt upp (en annan sträng, mellanrum, siffror och eventuell förekomst av siffra-punkt). För att kolla detta oavsett versal eller gemen skulle jag göra alla bokstäver gemena i min jämförelse. Ifall en matchning existerar blir denna en start på en tillståndsmaskin som sen tar han om jämförelser och eventuell kopiering av resterande tecken. Dvs en slags parser som följer de kriterier som du satt upp och gör det som du tänkt ska göras i de olika fallen.
Mig veterligen så finns det ingen färdig lösning för dina "problem" inom STL string, utan det blir nog till att ta itu med detta själv på "lågnivå" ifall du behöver en smidig lösning som inte tar på prestandan.
Att konvertera mellan strängar och olika datatyper kan man göra rätt enkelt med följande två små mallar:
#include <sstream>
template <class Out>
Out from_string(string in) {
istringstream is(in);
Out o;
is >> o;
return o;
}
template <class In>
string to_string(In in) {
ostringstream os;
os << in;
return os.str();
}
// användning:
string x = to_string(13);
string y = to_string(3.14);
int i = from_string<int>(x);
double d = from_string<double>(y);
Kanske inte det mest effektiva, men smidigt. Allt som krävs för att mallarna ska funka är att operator<< och operator>> funkar för strömmar för den typ man vill konvertera till/från.