检查字符串是否重复特定字符
Check string for recurrence of specific character
如何在字符串内部搜索特定字符的多次出现(在本例中为句点.
(?
我已经试着从这个问题中得出答案,但我认为我做错了。
std::string periodCheck = i.convert_to<std::string>();
char subString = '.';
std::size_t pos = periodCheck.find(subString, 0);
int counter;
while(pos != std::string::npos){
counter++;
if(counter > 1){
std::cout << "nError: Multiple periodsn";
return false;
}
}
第一行简单地从Boost多精度cpp_dec_foat(名为i
(转换为字符串。我知道这部分代码是有效的,因为我在程序的其他地方有效地使用了它。
我正在尝试检查字符串是否包含多个句点。如果字符串中有多个句点,函数将返回false
。
我怎样才能做到这一点?
如果您找到一个句点,那么您的下一个逻辑步骤也是再次搜索,从下一个字符位置开始。
但是,如果您查看代码,您将无法找到它实际再次搜索的任何位置。while循环中没有对find()
的调用。
根本不需要while循环。您所需要做的就是再次调用find()
,将pos+1
指定为第二次搜索的起始位置,然后再次检查结果。如果你找到另一个句号,你可以称之为句号。搜索字符串中的任何剩余句点都不会获得任何结果。你有你的答案。
std::size_t pos = periodCheck.find(subString, 0);
if (pos != std::string::npos)
{
pos=periodCheck.find(subString, pos+1);
if (pos != std::string::npos)
return false;
}
相关文章:
- 从 argv[1] 转换为字符 * 字符串后有什么问题?
- 将 NULL 与 C 的字符* 字符串一起使用
- 无法在声明时使用初始值设定项列表初始化常量字符*/字符串数组的向量
- 无法将常量字符字符串传递给模板类
- 如何组合一个宽字符字符串,中间插入一些空字符
- 如何将二维数组类型字符(字符串)作为函数参数传递?
- 从给定索引返回子字符字符串的函数
- 字符 [](c 字符串)的初始化标准
- 如何将字符字符串用作数学运算符
- 将 Unicode 字符/字符串写入文件
- C++,字符* 字符串修改
- 如何有效地用不同的整数元素替换字符字符串的元素
- C++:如果我们在字符串中添加一些整数,为什么它会从开头删除该数量的字符?(字符串 + 整数)
- strcpy正在复制sth字符i字符串.如何解决此错误
- 在C++中将双精度转换为字符*/字符串
- C 中的宽字符字符串
- 如何提取C 中的字符/字符串之间的字符串
- 无法将字符/字符串转换为int
- 带有指针的反转字符字符串
- 反转字符串中的 n 个字符(字符串中没有空格),而不使用 c++ 中的内置函数