A simple C++ function to tokenize a string
#include <vector>
#include <string>
#include <sstream>
using namespace std;
vector<string> getTokens(string str){
string buf; // Have a buffer string
stringstream ss(str); // Insert the string into a stream
vector tokens; // Create vector to hold our words
while (ss >> buf)
tokens.push_back(buf);
return tokens;
}
A more complex tokenize function
void Tokenize(const string& str,
vector& tokens,
const string& delimiters = " ")
{
// Skip delimiters at beginning.
string::size_type lastPos = str.find_first_not_of(delimiters, 0);
// Find first "non-delimiter".
string::size_type pos = str.find_first_of(delimiters, lastPos);
while (string::npos != pos || string::npos != lastPos)
{
// Found a token, add it to the vector.
tokens.push_back(str.substr(lastPos, pos - lastPos));
// Skip delimiters. Note the "not_of"
lastPos = str.find_first_not_of(delimiters, pos);
// Find next "non-delimiter"
pos = str.find_first_of(delimiters, lastPos);
}
}
Usage: vector<string> tokens;
string str("Split,me up!Word2 Word3.");
Tokenize(str, tokens, ",<'> " );
vector <string>::iterator iter;
for(iter = tokens.begin();iter!=tokens.end();iter++){
cout<< (*iter) << endl;
}
Write a number to a string
int myInteger; string myString; ostringstream myStream; // Copy Integer to String Stream myStream << myInteger; // Assign characters in stream to std::string myString = myStream.str();A stream can be cleared in the following way:
myStream.str("");
Replace a vector element
vectortheVector; //populate the vector theVector.at(2) = "new string";
Transform HTML color code string to COLORREF
The string parameter is assumed to be in '#FFFFFF' format.COLORREF transformHTML(string color){
string s1(color, 1,2);
string s2(color, 3,2);
string s3(color, 5,2);
long r = strtol(s1.c_str(), NULL, 16);
long g = strtol(s2.c_str(), NULL, 16);
long b = strtol(s3.c_str(), NULL, 16);
return RGB (r,g,b);
}
Determine Whether A String is in Upper Case
bool isUpper(string line){
const char *str = line.c_str();
while(*str != '\0'){
if(IsCharLower(*str))
return false;
*str++;
}
return true;
}
A Windows IsCharLower function is used.
Convert str::string to char
Use the c_str() function.Example:
string str = "test string"; const char *ch = str.c_str();
Pass string arrays to functions
This actually refers to C.You declare a string array in the calling function as follows:
char arr[10][30];The second dimension must always have the exact number of elements in the function declaration:
int functionName(char (*arr) [30], int numberOfElements 10);The brackets around the array name are important. You also pass the number of elements in the first dimension as an argument to the function.
No comments:
Post a Comment