1中的substr().到最后一个字符C++
substr() from the 1. to the last character C++
我想使用substr()函数从1中获取字符链。到最后,没有0。我应该这样做吗:string str = xyz.substr(1, xyz.length());
还是CCD_ 2?为什么?
您不需要指定要包含的字符数。正如我在评论中所说:
string str = xyz.substr(1)
这将返回所有字符,直到字符串
子字符串的签名是
string substr (size_t pos = 0, size_t len = npos) const;
由于新字符串的长度比旧字符串短1,因此您应该如下调用它:
string str = xyz.substr(1, xyz.length() - 1);
实际上,您可以省略第二个参数,因为它默认为字符串:npos。"字符串::npos的值表示字符串结束之前的所有字符。"(请参阅http://www.cplusplus.com/reference/string/string/substr/)。
这两个声明
std::string str = xyz.substr( 1, xyz.length() );
和
std::string str = xyz.substr( 1, xyz.length() - 1 );
如果CCD_ 3的大小不等于0。
然而,这份声明
std::string str = xyz.substr( 1 );
更具表现力。
如果字符串xyz
可以是空字符串,那么您应该编写类似的内容
std::string str = xyz.substr( !xyz.empty() ? 1 : 0 );
或
std::string str = xyz.substr( xyz.size() != 0 ? 1 : 0 );
如果您想找到从某个索引开始到字符串末尾的字符串的子字符串,可以执行以下操作。
char * substring(char *s){
return s;
}
int main(){
char s[1][n]; // suppose we just take a single string.
char *sub;
scanf("%s",s[1]); //s[1]="ababaaa"
sub=substring(s[1]+1); //sub="babaaa"(starting from 1st index).
sub=substring(s[1]+3); //sub="baaa" (starting from 3rd index).
return 0;
}
相关文章:
- 使用连续分隔符和空最后一个字符进行拆分
- 如何检查字符串中的最后一个字符是否是某个字符并将其从字符串中删除?(C++)
- 比较最后一个字符,不区分大小写(带谓词?
- 在弦乐器中删除最后一个字符
- 输入文件中的第一个字符是输出文件中的最后一个字符,反之亦然
- 在C 字符串中,为什么在最后一个字符之后,通过索引和()访问索引时行为是不同的
- 如何查看复杂度为 O(1) 的字符串流对象中的最后一个字符
- 最后一个字符行编辑
- 如何在C 中获得字符串的最后一个字符
- 如何在C++中删除 UTF-8 字符串的最后一个字符
- 如何获取输入文件的行的第二个和最后一个字符,并在C++中组成数组
- 输出流中的第一个字符将替换为该流中被删除的最后一个字符.为什么会这样
- 正在将最后一个字符发送到std::cout
- 获取字符串流中的最后一个字符,而不复制其整个缓冲区
- remove_if字符串中的最后一个字符
- 如何删除最后一个字符
- 从字符数组中删除第一个和最后一个'X'字符
- C++文件中的最后一个字符
- (C++)如何从特定(结束)点查找 std::string 中的最后一个字符
- 如何获取您放入 ostream 对象中的最后一个字符