}
	输出结果为:
	1234
	查找字符开始与结束
	#include 
	using std::cout;
	using std::endl;
	#include 
	using std::string;
	int main()
	{
	string s1( "AA1234567890asdfasdf" );
	string s2( " AAB" );
	string s3;
	// test substr "to-end-of-string" option
	cout << "The substring of s1 starting atn"
	<< "location 5, s1.substr(5), is:n"
	<< s1.substr( 5 ) << endl;
	return 0;
	}
	/*
	The substring of s1 starting at
	location 5, s1.substr(5), is:
	4567890asdfasdf
	查找一个字符的位置
	#include 
	using std::cout;
	using std::endl;
	#include 
	using std::string;
	int main()
	{
	string s1( "AA1234567890asdfasdf" );
	string s2( " AAB" );
	string s3;
	// test string member function substr
	cout << "The substring of s1 starting at location 0 forn"
	<< "14 characters, s1.substr(0, 14), is:n"
	<< s1.substr( 0, 14 ) << "nn";
	return 0;
	}
	利用substr函数获取文件的扩展名方法
	#include 
	#include 
	using namespace std;
	int main (int argc, char* argv[])
	{
	string filename, basename, extname, tmpname;
	const string suffix("tmp");
	/* for each command-line argument
	* (which is an ordinary C-string)
	*/
	for (int i=1; i
	// process argument as file name
	filename = argv[i];
	// search period in file name
	string::size_type idx = filename.find('.');
	if (idx == string::npos) {
	// file name does not contain any period
	tmpname = filename + '.' + suffix;
	}
	else {
	/* split file name into base name and extension
	* - base name contains all characters before the period
	* - extension contains all characters after the period
	*/
	basename = filename.substr(0, idx);
	extname = filename.substr(idx+1);
	if (extname.empty()) {
	// contains period but no extension: append tmp
	tmpname = filename;
	tmpname += suffix;
	}
	else if (extname == suffix) {
	// replace extension tmp with xxx
	tmpname = filename;
	tmpname.replace (idx+1, extname.size(), "xxx");
	}
	else {
	// replace any extension with tmp
	tmpname = filename;
	tmpname.replace (idx+1, string::npos, suffix);
	}
	}
	// print file name and temporary name
	cout << filename << " => " << tmpname << endl;
	}