在 C++ 中,如何根据字符串中一定数量的字符解析字符串?
How do I parse a string based on a certain number of characters in the string in C++?
我知道如何根据分隔符(例如逗号)解析字符串。这个需要把字符串转成char数组吗?
我想比较一个包含 6 个数字的字符串,即 111222
用另一串 12 个字符长的数字,但我只想要前六个。
检查 111222 是否出现在字符串 111222345678 中的基本方法。
....but I only want the first six
对于第一个 n
字符比较,您可以使用 std::strncmp
char s1[] ="111222345678" ;
char s2[] ="111222";
std::cout << std::strncmp( s1,s2, 6 ) ; // n =6 chars
使用std::string,你可以做到
std::string sample = "111222345678";
if (sample.substr(0, 6) == "111222")
{
... do stuff here if ...
}
当然,这可以通过将要匹配的字符串也作为 std::string
来变得更通用:
std::string match = "111222";
if (sample.substr(0, match.length()) == match))
{
...
}
我知道如何根据分隔符(例如逗号)解析字符串。这个需要把字符串转成char数组吗?
我想比较一个包含 6 个数字的字符串,即 111222
用另一串 12 个字符长的数字,但我只想要前六个。
检查 111222 是否出现在字符串 111222345678 中的基本方法。
....but I only want the first six
对于第一个 n
字符比较,您可以使用 std::strncmp
char s1[] ="111222345678" ;
char s2[] ="111222";
std::cout << std::strncmp( s1,s2, 6 ) ; // n =6 chars
使用std::string,你可以做到
std::string sample = "111222345678";
if (sample.substr(0, 6) == "111222")
{
... do stuff here if ...
}
当然,这可以通过将要匹配的字符串也作为 std::string
来变得更通用:
std::string match = "111222";
if (sample.substr(0, match.length()) == match))
{
...
}