You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++编译报错:invalid conversion from 'char' to 'const char*'求助

解决编译错误及功能修正方案

错误原因分析

  • 类型不匹配触发编译错误:strcmp函数的参数要求是const char*类型(字符串指针),但你代码中传入的u是单个char,和字符串字面量"I"类型不兼容,这就是invalid conversion from 'char' to 'const char*'错误的根源。单个字符的比较直接用==运算符即可,无需使用字符串比较函数。
  • printf格式符误用:printf("%s", u)里的%s是用于输出字符串的格式符,而u是单个字符,应该用%c格式符输出单个字符。

修正后的代码

#include <stdio.h>
#include <ctype.h>
#include <string.h>

int main(){
    
    char S[10007];
    // 读取包含空格的整行输入
    scanf("%[^\n]", S);
    getchar();
    
    int i = 0;
    char u;
    while(S[i]){
        u = toupper(S[i]);
        // 单个字符直接用==比较
        if(u == 'I'){
            u = '1';
        } 
        else if(u == 'R'){
            u = '2';
        }
        else if(u == 'E'){
            u = '3';
        }
        else if(u == 'A'){
            u = '4';
        }
        else if(u == 'S'){
            u = '5';
        } 
        else if(u == 'G'){
            u = '6';
        } 
        else if(u == 'T'){
            u = '7';
        } 
        else if(u == 'B'){
            u = '8';
        } 
        else if(u == 'P'){
            u = '9';
        } 
        else if(u == 'O'){
            u = '0';
        } 
        // 用%c输出单个字符
        printf("%c", u);
        i++;
    }

    return 0;
}

测试验证

输入:im waterswell
输出:1M W4T325W33L,完全符合预期功能要求。

内容的提问来源于stack exchange,提问作者waterswell

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 11:10:33