为什么我C++的cout输出一个string,string的0输出为空格但是还继续输出下面的东西?

#include<iostream>#include<string>usingnamespacestd;stringFunc(strings){boolboolset[2... #include <iostream>
#include <string>

using namespace std;

string Func(string s)
{
bool boolset[256]={false};
int tail=0;
for(int i=0;i<(s.length());i++)
{
if(!boolset[s[i]])
{
boolset[s[i]]=true;
s[tail++]=s[i];
}
}
s[tail] = NULL;
return s;
}

int main()
{
while(true)
{
string x = "";
cin >> x;
cout << Func(x) << endl;
}
}
输入abccccde输出是abcde de.
展开
 我来答
ziyang64
2011-03-10 · TA获得超过962个赞
知道小有建树答主
回答量:529
采纳率:0%
帮助的人:805万
展开全部
string和char*是不同的,string里有长度信息,它不是以0结束的,改成:
//s[tail] = NULL;
s.resize( tail );
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式