gpt4 book ai didi

c++ - 如何有效地用不同的整数元素替换 char 字符串的元素?

转载 作者:搜寻专家 更新时间:2023-10-30 23:53:19 24 4
gpt4 key购买 nike

我正在寻找用整数元素替换字符串的元素。我想将 A 替换为 1,将 B 替换为 2,将 C 替换为 3D4

我怎样才能有效地做到这一点?

#include <iostream>
#include <string>
#include <algorithm>


int main()
{
std::string str = "ABCDDCBA";

std::replace(str.begin(), str.end(), 'A', '1'); // Replacing
std::replace(str.begin(), str.end(), 'B', '2');
std::replace(str.begin(), str.end(), 'C', '3');
std::replace(str.begin(), str.end(), 'D', '4');
// ...

std::cout << str << std::endl; // displaying
return 0;
}

最佳答案

您的方法对于用另一个任意字符替换任意字符非常有效。

但是,目前您将连续的拉丁字母表替换为连续的整数数字,因此您可以利用 ASCII 表示也是连续的这一事实:

for(char& c : str)
c += '1' - 'A';

当然,这取决于本地字符编码来表示具有连续值的连续拉丁字母表,例如 ASCII。它还取决于连续表示的数字,但这是标准规定的。

此外,此方法目前不检查替换字符,并且会更改所有遇到的字符。这不是您的输入字符串的问题,但如果您打算只替换某些类型的字符而保留其他类型的字符不变,那么您需要添加条件检查。

关于c++ - 如何有效地用不同的整数元素替换 char 字符串的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41633732/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com