我有一個非常簡單的問題。 我如何連接C++中的多個字符?例如,我想使這些表達式如下所示有效:C++中的多個級聯字符
Call_Function('a'+'b'+'c'+'d'); 預期成果:「abcd」; Call_Function(「a」+'b'+「c」);其中, 預期成果:「abc」;
在此先感謝。
我有一個非常簡單的問題。 我如何連接C++中的多個字符?例如,我想使這些表達式如下所示有效:C++中的多個級聯字符
Call_Function('a'+'b'+'c'+'d'); 預期成果:「abcd」; Call_Function(「a」+'b'+「c」);其中, 預期成果:「abc」;
在此先感謝。
對於字符串文字的串聯,你可以讓預處理器做的工作
"hello" " world"
結果"hello world"
。
與變量,簡單的就是用std::string
和operator +
std::string s;
s + "Hello" + ' ' + "world"
會導致std::string("Hello world")
在C++ 14,它可以與
using namespace std::string_literals; // for operator ""s
"Hello"s + ' ' + world
是的,沒錯,但是我可以重載operator +還是創建其他任何構造,以使參數表達式可以像例子中那樣完全寫入? –
確實不是,因爲'char + char'或'char * + int'已經有了意義。但是C++ 14引入了創建'std :: string'的快捷方式。 – Jarod42
謝謝!你是指操作符「」還是你指的是新的C++ 14快捷鍵? –
它必須被縮短可以這樣說,預期的結果可以是std :: string也不只是一個const char *。另一方面,被調用函數的表達式預計會被完全寫入,即不允許進行轉換。在C++中可能嗎? –
它是字面字符,還是來自變量? – Jarod42
它可以是兩者的組合。你可以有例如:char x; Call_Function(「a」+ x +「b」);或Call_Function('a'+ x +'b'); –