无法获得字符串:: size_type int做touper
Cant get string::size_type + int to do toupper
我想在 string
中的 .
之后在每个 char
上使用 toupper
。我尝试了此代码,但是如果我使用+
操作员,我在启动程序时会获得黑屏。
string fulltext = "my name is John. i have a girlfriend. her name is Anna";
string::size_type idx = 0;
while ((idx = fulltext.find(".")) != string::npos)
{
if (idx != string::npos)
{
fulltext[idx + 2] = toupper(fulltext[idx + 2]);
}
}
cout << fulltext << endl;
因此,事实证明,使用toupper
的唯一标准定义方法是通过 unsigned char
:https://stackoverflow.com/a/37593205/2642059这是在transform
中使用的lambda,例如,您可以将string fulltext
大写。
transform(cbegin(fulltext), cend(fulltext), begin(fulltext), [](const unsigned char idx){ return toupper(idx); })
由于您想从第一个'.'
启动,并且transform
在iterator
s上工作,因此您只需使用find
即可获得iterator
到'.'
,然后在1 st 和3 rd中使用它 transform
的参数:auto it = find(begin(fulltext), end(fulltext), '.')
,但是如果我们进行反向迭代,我们可以避免临时性:
transform(crbegin(fulltext), make_reverse_iterator(find(cbegin(fulltext), cend(fulltext), '.')), rbegin(fulltext), [](const unsigned char idx) { return toupper(idx); });
实时示例
相关文章:
- 为什么在全局范围内使用"extern int a"似乎不行?
- int(c) 和 c-'0' 之间的区别。C++
- "Missing type specifier - int assumed"无法通过向主函数添加"return 0"来解决
- 由于"error C4430: missing type specifier - int assumed. Note: C++ does not support default-int",我现在无法编
- 使用变换翻转地图,接收错误"type int unexpected"
- `type *var =(int)0`,法律与否
- C++ 错误"Braces around scalar initializer for type int*"
- 访问基类型数组成员(Int-to-type习惯用法)
- "a value of type " void (exeCallback::*)(int) " cannot be assigned to an entity of type " void (*)(
- 可以安全地使用静态强制转换,为每个实例使用唯一的虚拟 int type() 来提高性能
- 为什么我会收到"variable 'std::packaged_task<int> task' has initializer but incomplete type"错误
- "invalid cast from type 'const myClass' to type 'int'",如何使其有效?
- 链表函数 C++ "which is of non-class type 'int'" ?
- "Missing type specifier int assumed" C++问题
- 返回 type of const int &
- C++:"error C4430: missing type specifier - int assumed" 对于构造函数和无效声明
- type conversion-c++将int转换为char+将前导零添加到char
- 为什么 std::result_of<int(int)>::type 无效?
- C++将数组相互分配;type int*=type int有效,但int=int*无效
- "error: conversion from 'int' to non-scalar type 'COORD' requested"