使用整数和字符初始化c ++字符串

时间:2017-07-23 11:26:54

标签: string c++11

#include <iostream>
#include <string>
using namespace std;

int main() {
    string str {5, 'c'};
    cout << str;  // "\005c"
}

输出:c

使用gdb,它确认str包含&#34; \ 005c&#34;同 str [0] =&#39; \ 005&#39; str [1] =&#39; c&#39;

为什么str [0]没有在输出控制台中打印? 使用的c ++版本:c ++ 11

3 个答案:

答案 0 :(得分:0)

ASCII 5表示用于在接收端触发响应的信号。它在控制台上不可见。 参考:http://ascii.cl/

例如:尝试65而不是5,你会看到&#39; A&#39;。

答案 1 :(得分:0)

ASCII编号5不可打印。 ASCII table

5表示53的ASCII表示是可打印的。

string str {53, 'c'};
    cout << str;  // 5c

答案 2 :(得分:0)

5的{​​{1}}值为53

所以,你可以这样试试:

#include <iostream>
#include <string>
using namespace std;


int main() {
    string str {53, 'c'};
    cout << str;  // "\005c"
}