soleil_w 2022-07-17 21:04 采纳率: 0%
浏览 36

有没有人能帮我看看为什么这段代码只能部分通过编译,看了半天没看出毛病

问题遇到的现象和发生背景

从键盘输入一个字符串给str和一个字符给c,删除str中的所有字符c并输出删除后的字符串str。

输入格式:
第一行是一个字符串,不超过100个字符;
第二行是一个字符。

输出格式:
删除指定字符后的字符串。

输入样例:
在这里给出一组输入。例如:

sdf$$$sdf$$
$

输出样例:
在这里给出相应的输出。例如:

sdfsdf

代码如下
#include<iostream>
#include<string>
using namespace std;

int main() {
    string str;
    char c;
    cin >> str >> c;
    for (unsigned i = 0; i < str.length(); i++) {
        if (str[i] != c) {
            cout<<str[i];
        }
    }
    return 0;
}


运行结果及报错内容

部分通过编译

  • 写回答

2条回答 默认 最新

  • 浪客 2022-07-17 21:19
    关注
    
    int main()
    {
        char str[100];
        char c;
        cin.getline(str, 100); //可接收空格
        cin >> c;
    
        for (size_t i = 0; str[i]; i++)
        {
            if (str[i] != c)
            {
                cout << str[i];
            }
        }
        return 0;
    }
    
    评论

报告相同问题?

问题事件

  • 创建了问题 7月17日

悬赏问题

  • ¥15 如何解决ldsc的这条报错/index error
  • ¥15 VS2022+WDK驱动开发环境
  • ¥30 关于#java#的问题,请各位专家解答!
  • ¥30 vue+element根据数据循环生成多个table,如何实现最后一列 平均分合并
  • ¥20 pcf8563时钟芯片不启振
  • ¥20 pip2.40更新pip2.43时报错
  • ¥15 换yum源但仍然用不了httpd
  • ¥50 C# 使用DEVMOD设置打印机首选项
  • ¥15 麒麟V10 arm安装gdal
  • ¥20 OPENVPN连接问题