我写了,但是我的函数在记录向量中没有做一个单词,而是一个字母。
如何在没有标准的帮助下完成任务?
需要你的帮助。
如果是标点符号,则
函数IsPunctuation返回。
代码示例:bool
std::vector<char> Split(char* str)
{
std::vector<char> ch(strlen(str));
for (size_t index = 0; str[index] != '\0'; ++index)
{
if (IsPunctuation(str[index]))
{
ch.push_back(str[index]);
}
}
return ch;
}
UPD:
bool IsPunctuation(char ch)
{
const char* punctuation = "~`!@#$%^&*()-_+=,./?;:' ";
for (size_t p = 0; punctuation[p] != '\0'; ++p)
if (ch == punctuation[p])
return true;
return false;
}
UPD1:
-I
-like
-
-this
-
-it
-
毕竟,您向存储 的向量添加
char了字符串的一个元素,即char。如果您的目标是获取
vector,它将存储从初始行获得的行,其中有标点符号,
那么您首先需要创建一个临时字符串,您将在其中添加
这些相同的“魅力”,然后从到它的初始行,
到标点符号,然后才执行
push_back并将其添加到结果vector中。在一个简单的示例中,如果您稍微更改代码,并使用我的函数(
它只是检查逗号),它看起来像这样: