【问题标题】:How to replace characters inside a string with "*" in C++? [closed]如何在 C++ 中用“*”替换字符串中的字符? [关闭]
【发布时间】:2012-12-11 18:54:17
【问题描述】:

我是 C++ 新手。我的任务是用"*" 替换字符串变量的最后3 个字符。字符串的大小可以是可变的。
例如: - 如果 String xyz = "123456" 则应将 456 替换为 "***" 并且输出字符串应类似于 "123***"

【问题讨论】:

  • 对闭包的评论:假设我们正在谈论 C++ 字符串,可以准确地告诉我们要问什么。我不是在评论问题的质量,但我不知道怎么能说这个问题不是真实的。

标签: c++ stdstring


【解决方案1】:

xyz.assign(xyz.length(), '*');

请注意,原始问题已被编辑为包括要求仅将字符串的右三个字符替换为“*”。请参阅下面满足此要求的我的评论。

【讨论】:

  • 假设 xyz 的类型为 std::string
  • “替换字符串变量的内容” - 考虑到问题内容,​​我想说你对这个假设是相当安全的。
  • 是的,我同意。除非用户将 char * 或 char [] 作为字符串引用?
  • 非常感谢 DWright ...如果我只需要屏蔽字符串中的最后 3 个字符怎么办?请你帮我解决这个问题
  • xyz.assign(xyz.substring(0,xyz.length()-3)).append(3,'*');
【解决方案2】:

使用std::string::replace()

  string::iterator it = str.begin();   
  str.replace(it,str.end(),str.size(),'*');  

【讨论】:

  • 请再次检查问题。我已经编辑过了。给您带来不便,敬请见谅
【解决方案3】:

尝试类似这样:

这没有经过编译检查。

for(int i=0; i<strlen(yourString);i++){
   yourString[i]='*';
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-07-13
    • 2014-03-06
    • 2021-01-06
    • 1970-01-01
    • 1970-01-01
    • 2021-12-01
    • 2021-12-16
    • 1970-01-01
    相关资源
    最近更新 更多