首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于isspace和替换()的问题

关于isspace和替换()的问题
EN

Stack Overflow用户
提问于 2017-09-07 18:49:32
回答 1查看 353关注 0票数 2

我正在编写一个程序,它将读取一个2字符的用户输入的字符串"passCode“,并将任何空格”“替换为"__”。我只能编辑passCode初始化和cout之间的空间。目前,当用户输入"1“时,它应该打印出"1_",但它只是再次打印出"1”。这两个if语句应该分别查看字符串中的每个字符,如果是空格,则应该用下划线替换该空格。然而,它似乎不起作用。我不知道是不是因为我需要一个其他的陈述,但我不知道它将需要是什么。如果字符串中没有空格,则什么也不做。

代码语言:javascript
复制
#include <iostream>
#include <string>
#include <cctype>
using namespace std;

int main() {
   string passCode;

   passCode = "1 ";

   if (isspace(passCode.at(0)) == true){
      passCode.replace(0, 1, "_");
   }
   if (isspace(passCode.at(1)) == true){
      passCode.replace(1, 1, "_");
   }

   cout << passCode << endl;
   return 0;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-07 18:58:27

这是因为isspace不返回bool,而是返回int

返回值 与零(即真)不同的值,如果c确实是空白字符的话.否则为零(即假)。

如果删除== true部件,代码将按预期工作:

代码语言:javascript
复制
if (isspace(passCode.at(0))){
    passCode.replace(0, 1, "_");
}
if (isspace(passCode.at(1))){
    passCode.replace(1, 1, "_");
}

演示。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46103222

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档