irving#11 2023-03-07 14:01 采纳率: 100%
浏览 17
已结题

提问,C++字符串与字符转换问题

提问qaq,c++编程问题:
问题1:
定义了一个
vector words;
string str; //str为传入的字符串,不为空
words.push_back(""+str[0]);
因为words必须push形式为字符串格式的,""+str[0]这句代码如果str[0]为字母时可以正常运行,但他为符号时就显示为奇怪的字符串,比如空格字符‘ ’最后得到的时“ge”。并且也会输出?为什么?
问题2:
为了解决上面的问题,我需要将char类型转为string,c++里该怎么操作?是否有强制转换的函数,如果有需要加什么头文件吗?

  • 写回答

1条回答 默认 最新

  • CodeBytes 2023-03-07 14:04
    关注

    该回答引用ChatGPT

    问题1:

    当您执行 ""+str[0] 时,由于 C++ 中字符串是以 null 结尾的字符数组,因此 "" 实际上是一个长度为 1 的字符串,其中唯一的字符是 null 终止符。因此,表达式 ""+str[0] 实际上将 null 终止符与 str[0] 进行了连接。如果 str[0] 是一个字母,则结果是一个长度为 2 的字符串,其中第一个字符是 null 终止符,第二个字符是 str[0] 所表示的字母。但是,如果 str[0] 是一个空格或其他符号,则结果仍然是一个长度为 2 的字符串,但是第二个字符是 str[0] 所表示的符号,而不是字母。

    此外,在某些操作系统上,如果尝试在控制台窗口中输出 null 字符,则可能会显示为 ? 字符。

    问题2:

    您可以使用 std::to_string() 函数将 char 类型的变量转换为字符串。这个函数定义在 头文件中。例如,如果您要将 char 类型变量 c 转换为字符串,可以使用以下代码:

    char c = 'a';
    std::string s = std::to_string(c);
    
    

    请注意,这种方法只适用于表示数字的 char 值。如果您要将包含其他字符的 char 变量转换为字符串,则需要使用其他方法,例如使用字符串流 stringstream。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

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

悬赏问题

  • ¥20 西门子S7-Graph,S7-300
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改