C++ 字符串拆分
如何将字符串分为两个,第一个在“,”或“,”或“”等之前,第二个在其后,然后将这两个变量都赋给两个不同的变量。 例如C++ 字符串拆分,c++,C++,如何将字符串分为两个,第一个在“,”或“,”或“”等之前,第二个在其后,然后将这两个变量都赋给两个不同的变量。 例如 string s=“154558,ABCDEF;(这将由用户输入)string a=154558;//在转换string b=ABCDEF后,应该像这样拆分string b=ABCDEF在上拆分字符串的两种主要方法是(1)从字符串中创建一个分隔符,然后与分隔符“”、“一起使用以分隔两个字符串,例如 #include <iostream> #include <st
string s=“154558,ABCDEF;(这将由用户输入)string a=154558;//在转换string b=ABCDEF后,应该像这样拆分string b=ABCDEF在上拆分字符串的两种主要方法是(1)从字符串中创建一个分隔符,然后与分隔符“”、“
一起使用以分隔两个字符串,例如
#include <iostream>
#include <string>
#include <sstream>
int main (void) {
std::string s {"154558,ABCDEF"};
std::stringstream ss(s);
std::string sub {};
while (getline (ss, sub, ','))
std::cout << sub << '\n';
}
或者,第二种同样简单的方法是使用并找到字符串中,“
的位置,然后使用位置with提取逗号两侧的子字符串,例如
#include <iostream>
#include <string>
int main (void) {
std::string s {"154558,ABCDEF"};
size_t pos = s.find_first_of (",");
if (pos != std::string::npos) {
std::cout << "first: " << s.substr(0, pos) <<
"\nsecond: " << s.substr(pos+1) << '\n';
}
}
任何一种方法都可以。请仔细查看,如果您还有其他问题,请告诉我。在“
上拆分字符串的两种主要方法是:(1)从字符串创建一个分隔符,然后使用分隔符“”,“
分隔两个字符串,例如
#include <iostream>
#include <string>
#include <sstream>
int main (void) {
std::string s {"154558,ABCDEF"};
std::stringstream ss(s);
std::string sub {};
while (getline (ss, sub, ','))
std::cout << sub << '\n';
}
或者,第二种同样简单的方法是使用并找到字符串中,“
的位置,然后使用位置with提取逗号两侧的子字符串,例如
#include <iostream>
#include <string>
int main (void) {
std::string s {"154558,ABCDEF"};
size_t pos = s.find_first_of (",");
if (pos != std::string::npos) {
std::cout << "first: " << s.substr(0, pos) <<
"\nsecond: " << s.substr(pos+1) << '\n';
}
}
任何一种方法都可以。请仔细查看,如果您还有其他问题,请告诉我。我相信它可以像使用rfind+substr一样简单
size_t pos = str.rfind('.')
new_str = str.substr(0, pos);
基本上,代码所做的是搜索第一个“.”,然后使用substr来提取子字符串。我相信它可以像使用rfind+substr一样简单
size_t pos = str.rfind('.')
new_str = str.substr(0, pos);
基本上,代码所做的是搜索第一个“.”,然后使用substr提取子字符串。研究的乐趣您需要找到分隔符的索引,您可以使用find函数,然后使用substr函数拆分字符串。有关定位,“
,”的方法,请参阅。
或”
,a然后您可以使用substr
,等等…或者创建一个stringstream,如上所述,您可以尝试使用这个strtok()。研究的乐趣您需要找到分隔符的索引,您可以使用find函数,然后使用substr函数拆分字符串。有关定位,
,,。
或'
,然后您可以使用substr
,等等…或创建一个字符串流的方法,请参阅。如上所述,您可以尝试使用这个strtok()是的,这也是一个很好的方法。你可以使用find
,find_first\u of
,find_first\u not_of
,rfind
,等等的任意组合。你可以使用新的str\u b=str.substr(pos+1)来分步通过一个带任何分隔符的字符串
也提取第二个子字符串。是的,这也是一种很好的方法。基本上,您可以使用find
、find\u first\u of
、find\u first\u of
、rfind
等的任意组合来单步遍历字符串以分隔它。您可以使用new\u str\u b=str.substr(pos+1);
也提取第二个子字符串。