1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[tips][cpp] std:: basic_string:: substr

Last updated at Posted at 2024-11-01

tipsです。ほぼ標準リファレンスの輪読ですが、ここでは部分文字列を取得する問題など、問題解きやすくするtipsも込めています。

std::basic_string::substr

substr()
第一引数 pos:開始位置
第二引数 npos:開始位置からの要素数

要件:
pos <= size()

もし、npos > size() - posならば、size() - posが指定される。
つまり、指定した開始位置からの要素数が、元の配列の末尾までの要素数を上回ると、末尾までの要素を指定したものとして値が返される。

文字列内で、インデックス(i, j]の部分文字列を切り出したい場合は、substr(i, i-j)とすれば良い

#include <iostream>
using namespace std;
int main(){
    string a = "abc";
    // 0番目から要素数を指定する場合
    cout << a.substr(0, 2) << endl; // ab
    cout << a.substr(0, 3) << endl; // abc
    // 1文字取り出す場合
    cout << a.substr(2, 1) << endl; // c 
    // 末尾の要素までの要素数を超える場合
    cout << a.substr(2, 4) << endl; // c 
}

output

ab
abc
c
c
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?