C++ string

#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;
}


你可能感兴趣的:(C++,String)