如何解决C ++替换功能
我正在尝试使用replace函数将大写字母替换为小写字母。我尝试这样做的方式是,当要检查的字母介于ASCII值65-90之间时,它将被替换为32个ASCII值更高的字符,例如,将65转换为97(从A到A )。
char holder = (userPhrase[count]) + 32;
jumbledPhrase.replace(count,1,holder);
变量持有人的观点 为了保存要在替换中使用的新值,我收到一条错误消息,提示holder在替换函数中不算作char参数。可以按我尝试使用的方式使用它吗?
解决方法
使用tolower()
,避免使用幻数来简化您(以及您的代码阅读器)的生活。
阅读@churill评论的How to convert std::string to lower case?中的其他替代内容,例如std::transform
。
我认为您正在寻找
jumbledPhrase.replace(count,1,holder);
将字符串1
中位置count
的{{1}}(第一个1)字符替换为字符{{1}的jumbledPhrase
复制(第二个1) }。
参考here,如果您实际上正在寻找其他东西
,使用replace()
替换单个char
实在是太过分了,只需使用operator[]
即可,您已经使用它访问了要替换的源char
:
char holder = userPhrase[count] + 32;
jumbledPhrase[count] = holder;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。