小白-_ 2024-03-09 10:15 采纳率: 50%
浏览 161
已结题

这里的expected expression错误如何解决(语言-c++)

对于该问题统计字符串中某个字符出现的次数

img


编写如下代码

img


运行后报错expected expression cout << countchar0(a[],m) << endl;

img


到底哪里出了问题?int型函数不能这样用输出语句来打印返回值吗?还是函数定义有问题?

  • 写回答

3条回答 默认 最新

  • 檀越@新空间 2024-03-09 10:17
    关注

    小白-_ 上午好☀️☀️☀️️
    本答案参考ChatGPT-3.5

    在您提供的代码片段中,存在几个问题导致了“expected expression”错误。以下是问题的分析和解决方案:

    1. 函数参数错误countchar0 函数接收字符指针和整型引用作为参数,但在调用时您直接使用了数组名 a[],没有指定数组长度。C++ 中需要显式地传递数组的大小。

    2. 缺少函数调用所需的参数:在调用 countchar0 函数时,您没有传入数组长度。

    3. 变量 m 定义的位置不正确:您在代码中间部分定义了变量 m,但应该在调用函数之前定义并初始化它。

    4. 缺少大括号闭合while 循环内部缺少闭合的大括号 {}

    修正后的代码应如下所示:

    #include<iostream>
    using namespace std;
    
    // 假设 a 是一个全局声明的字符数组,例如 char a[] = "your_string";
    
    int countcharo(char*p, int &n) {
        n = 0;
        while(*p != '\0') {
            if(*p == 'h') {
                n++;
            }
            p++; // 需要移动指针以遍历整个字符串
        }
        return n; // 返回计数结果
    }
    
    int main() {
        int m = sizeof(a) / sizeof(a[0]) - 1; // 计算数组长度(不包括结束符'\0')
        int count = 0;
        
        cout << countcharo(a, count) << endl; // 正确的函数调用方式,同时输出计数值
    
        return 0;
    }
    

    通过上述修改,您的代码将能够统计字符串中字符 'h' 的出现次数,并正确输出结果。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 3月17日
  • 已采纳回答 3月9日
  • 创建了问题 3月9日