我得到一个数组形式的字符,然后我将其转换为字符串.如果我以字符串形式打印它,则在打印所需字符后打印出奇怪的东西.
char array[2];
array[0] = 'A';
array[1] = 'B';
string name( array );
cout<<"In string format: "<<name;
Run Code Online (Sandbox Code Playgroud)
你的字符串不是以null结尾的字符串.试试这个
char array[3];
array[0] = 'A';
array[1] = 'B';
array[2] = '\0'; // this indicate that the string end here
string name( array );
cout<<"In string format: "<<name;
Run Code Online (Sandbox Code Playgroud)
小智 5
数组不是null终止,你应该这样做:
char array[3];
array[0] = 'A';
array[1] = 'B';
array[2] = 0;
Run Code Online (Sandbox Code Playgroud)
这是由于许多字符串例程使用像null这样的字符编码来确定字符串结尾的位置.这是违反直觉的,也是许多问题的原因.我建议总是使用std :: string而不是直接操作字符数组.