#include <string>// 注意是<string>,不是<string.h>,带.h的是C语言中的头文件
using std::string;
using std::wstring;
或
using namespace std;
下面你就可以使用string/wstring了,它们两分别对应着char和wchar_t。
对C风格的字符串复制到string中来
#include"iostream" #include <string> using namespace std; int main() { const char* pszConstString = "Hello String"; string strFormatConst(pszConstString); cout << strFormatConst << endl; }
string里有特定的迭代器来供循环使用。
size_t是C内部预定义的一个类型:
typedef unsigned int size_t
因此这句代码相当于:unsigned int size=sizeof(long long);
而sizeof()函数的功能就是求变量在内存中所占的字节数
因此,这句话的意思是将long long类型在内存中所占的字节数赋值给无符号整型变量size
#include"iostream" #include <string> using namespace std; int main() { string strSTlString("Hello String"); /***********用传统的方法显示字符**************************/ cout << "用传统的方法显示字符" << endl; for (size_t nCharCount = 0; nCharCount < strSTlString.length(); ++nCharCount) { cout << strSTlString[nCharCount] << endl; } /***************用STL迭代器来操作字符******************/ cout << "用STL迭代器来操作字符" << endl; string::const_iterator itr; for (itr = strSTlString.begin(); itr != strSTlString.end();itr++) { cout << *itr << endl; } return 0; }
在string中有很简单的find() 函数,对查找是非常有帮助的。
string类的查找函数:
int find(char c, int pos = 0) const;//从pos开始查找字符c在当前字符串的位置
int find(const char *s, int pos = 0) const;//从pos开始查找字符串s在当前串中的位置
int find(const char *s, int pos, int n) const;//从pos开始查找字符串s中前n个字符在当前串中的位置
int find(const string &s, int pos = 0) const;//从pos开始查找字符串s在当前串中的位置
下面第一个是只有一个内容的查找,第二个是多重的查询的,以及对查询的依次的内容的输出。
#include"iostream" #include <string> using namespace std; int main() { string str("Good day String!And today is beatiful!"); cout << str << endl; /*************从零开始找字符串************/ size_t nOffset = str.find("day", 0); /*************返回为—1 为npos*******/ if (nOffset != string::npos) { cout << "在下标:" << nOffset << "找到了!" << endl; } else { cout << "没找到" << endl; } /************输出所有的查找到的********************/ size_t nOffsetMulit = str.find("a", 0); while (nOffsetMulit != string::npos) { cout << "在下标" << nOffsetMulit << "找到了" << endl; nOffsetMulit = nOffsetMulit + 1; nOffsetMulit = str.find("a", nOffsetMulit); } return 0; }string中transform的用法
#include <string> #include <algorithm> using namespace std; int main() { string str; getline(cin, str); /**************transform需要加头文件*****************/ /********************对输入的妆花为大写****************/ transform(str.begin(), str.end(), str.begin(), toupper); cout << str << endl; return 0; }