如何在 C++ 中终止字符串

how to terminate a string in c++

本文关键字:终止 字符串 C++      更新时间:2023-10-16
#include<iostream>
#include<memory.h>
#include<string.h>
using namespace std;
int main()
{
string a;
cin>>a;
int len=a.length();
bool hit[256];
memset(hit,0,sizeof(hit));
hit[a[0]]=1;
int tail=1;
for(int i=1;i<len;i++)
{
    if(!hit[a[i]])
    {
        a[tail]=a[i];
    ++tail;
    hit[a[i]]=true;
}
}
a[tail]='';
cout<<" "<<a;
}

此程序删除字符串中的重复项。例如,输入 "aaaa" 将仅打印"a"。

我需要知道的是如何终止C++中的字符串!它不会以''终止。我读过一些关于堆栈溢出的问题,这些问题表明 c++ 中字符串的终止不使用''。我没有找到如何终止字符串。谁能帮忙?

null 终止字符串是你不必处理std::string的事情。首先,每个接受std::string的函数都已经知道长度并且不需要NULL终止。其次,std::string有一个c_str()包装器,它为你提供了一个NULL结尾的字符串,所以你不必搞砸它。只需使用 resize 将字符串设置为您想要的长度即可完成。

只需按 string::resize 设置字符串的大小,不需要 null 终止:

a.resize(tail);

要删除重复项,您可以使用std::unique这里是函数的描述。它将返回"未删除的最后一个元素后面的元素的迭代器"。因此,您可以使用 a.resize(i) 调整字符串大小,其中 istd::unique 的返回值。