我需要一种方法来创建一个n字符串.在这种情况下,ascii值为零.
我知道我可以通过调用构造函数来做到这一点:
string sTemp(125000,'a');
但是我想在许多地方重复使用sTemp并用不同的长度填充它.
我正在调用一个以字符串指针和长度作为参数的库,并用字节填充字符串.(我知道技术上字符串不是连续的,但是对于所有意图和目的而言,它很快就会成为标准).我不想使用矢量.
是否有一些聪明的方法在创建字符串后再次调用构造函数?
phl*_*psy 12
本string类提供的方法assign,以给定的字符串指定一个新值.签名是
1. string& assign ( const string& str );
2. string& assign ( const string& str, size_t pos, size_t n );
3. string& assign ( const char* s, size_t n );
4. string& assign ( const char* s );
5. string& assign ( size_t n, char c );
6. template <class InputIterator>
string& assign ( InputIterator first, InputIterator last );
Run Code Online (Sandbox Code Playgroud)
引用来源:cplusplus.com(我推荐这个网站,因为它为您提供了一个非常精细的C++标准库参考.)
我认为你正在寻找类似第五个函数的东西:n指定字符串所需的长度以及c填充到该字符串中的字符.例如,如果你写
sTemp.assign(10, 'b');
Run Code Online (Sandbox Code Playgroud)
你的字符串将只填充10 b.
我最初建议使用STL算法,std::fill但因此你的字符串长度保持不变.该方法string::resize提供了一种更改字符串大小并使用给定值填充附加字符的方法 - 但只设置了附加的字符.最后string::assign保持最好的方法!
| 归档时间: |
|
| 查看次数: |
8551 次 |
| 最近记录: |