【发布时间】:2019-10-08 11:02:44
【问题描述】:
我有一个字符串name2。我想删除其中的大写字符并改为小写。
输入:Car 输出:car
这是我的循环代码:-
if(isupper(name2.at(i))) {
string tem=to_string(tolower(name2.at(i)));
name2.erase(i,1);
name2.insert(i,tem);
}
i 只是循环变量。
但是,这是我的输入与输出
输入:Sushant 输出:115ushant
我想它给出了某种 ASCII 等效输出。 我该如何解决这个问题?
【问题讨论】:
-
您可以从stackoverflow.com/questions/313970/…查看如何制作小写
-
不需要擦除/插入,直接设置值即可:
name2[i] = tolower(name[i])。我想您正在遍历字符串,是 (for(size_t i = 0; i < name2.length; ++i)) 吗?那么你就不需要范围检查访问(at(i)),你知道你在范围内,所以更喜欢更有效的非检查索引运算符(name2[i])。