简体   繁体   English

如何在C ++中从右侧使用substr获取字符串

[英]how to use substr get string from right hand side in c++

I have a string of numbers for example 469111252 and I know how to split from left-hand side but how to use substr to split it from right-hand side? 我有一串数字,例如469111252,我知道如何从左侧拆分,但如何使用substr从右侧拆分?

If digitsPerNode = 2 如果digitsPerNode = 2

from left 46 91 11 25 2 从左起46 91 11 25 2

But I want to get from right 52 12 11 69 4 但我想从正确的角度出发52 12 11 69 4

//left hand side parse
for (int i=0;i<num.length(); i+=digitsPerNode) {
    splitNum = num.substr(i,digitsPerNode);
}

Count from top to bottom not from bottom to top. 从上到下而不是从下到上计数。

int numlength=num.length();

if(numlength%2==1)
numlength+=1;

    for(int i=numlength;i>=0;i-=digitsPerNode)
    {
        splitNum = num.substr(i,digitsPerNode);
    {
string a = "1234567890-=4";
for (int i = a.length() - 2; i >= -1; i = i - 2)
{
    if (i < 0) cout << a.substr(i+1, 1) << endl;
    else cout << a.substr(i, 2) << endl;
}

I found the solution with reverse function 我找到了具有反向功能的解决方案

DoublyLinkedList::DoublyLinkedList(string value, string dPerNode)
{
    digitsPerNode = stoi(dPerNode);
    string subString;
    reverse(value.begin(), value.end());
    for (int i = 0; i <= value.length(); i += digitsPerNode)
    {
        //cut string by digitsPerNode Ex: 3 500 123 412
        subString = value.substr(i, digitsPerNode);
        reverse(subString.begin(), subString.end());
        insertAtHead(subString);
    }

}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM