【问题标题】:How do I parse a string based on a certain number of characters in the string in C++?如何根据 C++ 中字符串中的一定数量的字符来解析字符串?
【发布时间】:2015-02-08 18:36:46
【问题描述】:

我知道如何根据分隔符解析字符串,例如逗号。这是否需要将字符串转换为 char 数组?

我想比较一个有 6 个数字的字符串,即 111222

还有一个 12 个字符长的数字字符串,但我只想要前六个。

检查字符串 111222345678 中是否出现 111222 的基本方法。

【问题讨论】:

  • 请记住,检查字符串的前几个字符和检查一个字符串是否包含在另一个字符串中是两个不同的问题。除此之外,您应该能够使用谷歌

标签: c++ string string-parsing


【解决方案1】:

....但我只想要前六个

对于第一个n 字符比较,您可以使用std::strncmp

char s1[] ="111222345678" ;
char s2[] ="111222";

std::cout << std::strncmp( s1,s2, 6 ) ; // n =6 chars

【讨论】:

  • 哦,天哪,从来没有想过只是将字符串作为一个整体进行比较,而不是切断 12 个数字字符串的最后 6 个字符。非常感谢。
【解决方案2】:

使用 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))
{
  ... 
}

【讨论】:

  • 也许没那么简单,但我会使用if ( sample.size() &gt;= match.size() &amp;&amp; std::equal( match.begin(), match.end(), sample.begin() )之类的东西。
猜你喜欢
  • 1970-01-01
  • 2021-03-19
  • 2010-11-07
  • 1970-01-01
  • 1970-01-01
  • 2019-12-23
  • 1970-01-01
  • 1970-01-01
  • 2015-01-13
相关资源
最近更新 更多