[英]How to use substr from right hand side to left hand side? How to convert each 8 characters from a string to an int?
我有以下代碼:
#include<iostream>
#include<string>
using namespace std;
int main()
{
int i=o;
string str="12345678910111213141516171819202122232425262728293";
while(i<str.length())
{
cout<<str.substr(i,8)<<endl;
i=i+8;
return 0;
}
/我的輸出是:12345678 91011121 31415161 .......我想從右到左而不是從左到右獲得8個字符。 然后,需要將接收到的每8個字符插入一個整數變量。 請,有人可以幫忙嗎? /
不確定我是否完全理解問題...但是,如果您想要最后八個字符,可以使用:
str.substr( str.length() - 8, 8 );
要將字符串轉換為整數,可以使用:
#include <cstdlib>
int i = atoi( str.c_str() );
或將字符轉換為int可以使用:
int i = str[ 0 ] - '0';
首先使用mod %
運算符打印剩余字符。
#include<iostream>
#include<string>
using namespace std;
int main()
{
string str="12345678910111213141516171819202122232425262728293";
std::size_t sz = str.size();
std::size_t i = 0;
if(sz % 8) {
cout<<str.substr(i, sz % 8) << ' ' ;
i += sz % 8;
}
while(i<str.length())
{
cout << str.substr(i,8) << ' ';
i = i+8;
}
cout << endl;
return 0;
}
現在,您可以使用std::stringstream
或std::stoi
將這些字符串轉換為數字。
int strToNum(const string &str)
{
std::stringstream sstr(str);
int ret;
if( sstr >> ret ) {
return ret;
} else {
// Error handling
throw str + " is not an integer";
}
}
要使用后8位數字創建子字符串,請使用string::length
:
str.substr(str.length() - 8, 8)
然后,要將子字符串轉換為int,請使用stoi
:
int i = stoi(str.substr(str.length() - 8, 8));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.