试图替换C++字符串中的字符,完全被卡住了
Trying to replace characters in C++ Strings, completely stuck
我是一个新手,在天气好的时候,我试图输入几个字符串,然后用字母"x"只替换其中的几个字符串,以便在它们重新显示在屏幕上时进行审查。我知道我的问题很简单,但我太困了,我需要一些帮助。我四处寻找这个答案,但没有找到任何有用的东西。这是我的代码:
#include<iostream>
#include<string>
using namespace std;
int main()
{
string name, userName, securityNumber, password;
string str1, str2, str3;
string x = "x";
cout << "Enter your name: ";
cin >> name;
cout << "Enter your Social Security Number: ";
cin >> securityNumber;
cout << "Enter your username: ";
cin >> userName;
cout << "Enter your password: ";
cin >> password;
{
securityNumber.replace(0, 99, x);
password.replace(0, 99, x);
str1 = name + " " + securityNumber;
str2 = userName + " " + password;
str3 = str1 + " " + str2;
}
cout << "Your information: " << str3 << endl;
system("Pause");
return 0;
}
securityNumber.replace(0, 99, x);
std::string::replace()
有许多不同的过载。您正在呼叫
std::string& replace (size_t pos, size_t len, const std::string& str);
版本;这用CCD_ 4替换从CCD_ 2到CCD_。因此,在这种情况下,securityNumber
中的前99个字符将被单个"x"替换。
我敢肯定这不是你想要的。目标是用x
替换securityNumber
中的每个字符吗?还是只是数字?在第一种情况下,构造一个填充了适当数量的x
的新字符串可能会更容易,例如:
securityNumber = std::string(securityNumber.length(), 'x');
我认为您不想永久替换用户输入的字符串。
你可能想做的是:
// make a temporary display string of size same as that of securityNumber with all characters 'x'
std::string tempDisplay( securityNumber.size(), 'x' );
str1 = name + " " + tempDisplay;
如果您仍然想使用replace和您附带的相同字符串,您可以使用securityNumber.replace(securityNumber.begin(), securityNumber.end(), securityNumber.size() , 'x');
例如,它将采用任意长度的字符串,然后将其内容替换为x个字符。
您在这里有很好的答案,但是您也可以用这种方式来做,如果您想用x替换所有a字符,您可以使用这个代码片段:
for(int i = 0;i < SecurityNumber.length;i++)
if(SecurityNumber[i] == 'a')
SecurityNumber[i] = 'x';
相关文章:
- 生成随机.txt文件,10行,10列。充满随机:"*"、"#"、"@"。然后将随机字符替换为'P'
- 我想仅使用递归将字符"a"替换为字符"z"
- 将一个字符替换为字符串中更多数量的字符,而不删除C++中的其他字母
- 如何将像'A'这样的单个字符替换为类似"10"?
- Qt:文件名中的非 ASCII 字符替换为"?"
- 我无法用字符替换重复的数字"a"
- QtLineEdit 占位符:如何让用户在插入模式下将字符 1 替换为 1
- 将一个特定字符替换为正则表达式匹配中的另一个字符
- 如何将所有出现的字符替换为给定的字符串
- 将一个数组到另一个数组的字符替换为字符串
- C++ 字符串,用于删除字符'b'并将字符'a'替换为两个'd'的构建函数
- 将字符串中的所有非 ASCII 字符替换为其等效的 ASCII
- 将utf8编码的字符串转换为本地8位编码的字符串,并将无法确定的字符替换为空白
- C++-用非ascii字符替换文件中的特殊字符
- 将字符串中的 č,š,ć 等字符替换为其 html 代码C++
- 用连字符替换字符串中的文本
- 用不同字符替换单词的代码
- 将空白字符替换为 %20 的字符串,忽略所有尾随空格
- 将部分字符*替换为较小的字符*
- 将字符串中的字符替换为某个字符串