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

C++开发随机密码生成器报const char*转unsigned char错误如何解决

错误触发原因
  • 字符串拼接方式错误:C++中字符串字面量无需用+拼接,相邻书写即可自动合并。你使用+运算后,左侧字符串字面量退化为const char*指针,和右侧字符'"'做指针偏移运算,最终得到的const char*类型无法匹配数组元素unsigned char的类型要求,触发类型转换报错。
  • 多字符常量非法:后续<.>/?被包裹在单引号中,C++中单引号仅用于声明单个字符常量,包含多个字符时会触发「字符常量长度超出类型范围」的警告,同时代码中误写的逗号运算符会截断表达式,进一步加重类型不匹配问题。
修复方法

直接将整段字符集写在同一个双引号内,需要转义的双引号用\"表示即可,不需要拆分拼接。修复后完整代码如下:

#include <iostream>

const unsigned char chars[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890`~!@#$%^&*()-_=+[{]}\\|;:'\",<.>/? ";

int main(){
    std::cout << chars;
    return 0;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 22:24:10