【问题标题】:Different output on different format of adding a new char to string向字符串添加新字符的不同格式的不同输出
【发布时间】:2020-07-17 21:55:20
【问题描述】:
 #include<iostream>
 #include<string>
 using namespace std;

 int main()
{
     string name[] = {"Geeks ", "for", "Geeks"} ;
     string v,s ;

     v += name[0][0] + "." ;
     cout << v << "\n" ;

     s += name[0][0] ;
     s += "." ;
     cout << s << "\n" ;
}

关于输出:

字符串 v 输出垃圾字符串,而字符串 s 输出 G。

输出:

@ // 字符串 v 的输出

G. // 字符串 s 的输出

为什么 v 给出一个垃圾值,即使我附加了 '.'到新字符串?

请解释这两种情况。

【问题讨论】:

    标签: string char string-concatenation


    【解决方案1】:

    Clang 会抱怨:

    v += name[0][0] + "." ;
    

    带有如下信息:

    warning: adding 'std::...' (aka 'char') to a string does not append to the string [-Wstring-plus-int]
    

    换句话说,string + "chars" 不会将chars 附加到字符串中,因此您需要手动创建字符串:

    v += name[0][0] + string(".") ;
    

    【讨论】:

      猜你喜欢
      • 2021-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-12
      • 1970-01-01
      • 1970-01-01
      • 2018-01-01
      • 1970-01-01
      相关资源
      最近更新 更多