如何在 C++ 中终止字符串
how to terminate a string in c++
#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)
调整字符串大小,其中 i
是 std::unique
的返回值。
相关文章:
- 为什么这个 c++ 代码打印出长度 5,当我打印出字符串时,程序会自动终止?
- 在字符串函数中抛出'char const*'实例后调用的终止
- 使用终止程序的指针在数组中输入字符串
- 如何告诉字符串流忽略null终止字符
- 当 NUL 字符被定义为字符串的一部分时,为什么 strlen() 不计算终止 NUL 字符的字节?
- 如何将非空终止字符串输出到 iostream,但保持格式
- 是否有一种安全的方法可以断言字符串视图是否以 null 终止?
- 自动截断和 null 终止缓冲区溢出中的字符串缓冲区
- 用户定义的字符串文字为字符串null终止
- 如何制作包含原始字符串终止符C++原始字符串
- 为什么具有单独字符的字符数组不像字符串文字那样以 null 终止符结尾?
- 终止字符串的 '