c++ substr()字符函数的使用方法

作者:袖梨 2022-06-25

c++ substr()字符函数也是大家经常会遇到的,那么对于c++ substr()字符函数怎么使用呢?大多数人可能还不知道具体使用方法,下面我们一起来看看。

str.substr(startpos, length);

其中 startpos 是起始字符的序号,length 是[从 startpos 开始]取的字符串长度(包括

startpos )。

如果要取得 str 中序号 m 到 n 之间(不包括n)的子字符串需要用

str.substr(m, n-m);

#include

#include

using namespace std;

main()

{

string s("12345asdf");

string a=s.substr(0,4); //获得字符串s中 从第0位开始的长度为4的字符串

cout<

}

输出结果为:

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;

}

相关文章

精彩推荐