使用strlen剔除字符串中的指定单词
Using strlen to strikeout specified words in string
使用下面的函数,我可以传入两个字符串(char *hide, char *phrase)。*短语是整个字符串,* hide是必须通过将单词中的所有字母替换为'*'来删除的单词(可以重复)。它目前的工作原理是,它继续寻找*hide的第一个字母,然后是*hide单词的第二个字母,尽管它不是在字符串中彼此相邻。
*phrase = 'hello my name is'
*hide = 'lame'
result = 'he*lo my n*** is'
{
int i, j=0;
int lengthPhrase = strlen(phrase);
int lengthCensor = strlen(hide);
for (i = 0; i < lengthPhrase; i++) {
if (phrase[i] == hide[j]) {
phrase[i] = '*';
j++;
}
}
}
问题出在哪里,这样它就可以正确地剔除整个单词??
感谢您的宝贵时间。
既然我似乎不理解你的问题,我想为你做一个函数,看看这是否是你要找的:
string phrase = "hello my name is"
string hide = "lame"
//strikeout function
void strikeout(string phrase, string hide)
{
for (int i = 0; i < hide.size(); i++)
{
for (int j = 0; j < phrase.size(); j++)
{
if (hide[i] == phrase[j])
{
phrase[j] = '*';
}
}
}
cout << phrase << endl;
}
基于测试用例的输出:"h***o ** y n*** is"
相关文章:
- 从字符串变量中逐字符读取单词
- 使用std::mt19937从字符串中返回一个随机单词
- C++-字符串是否包含一个带有简单循环的单词
- 在C++中查找(奇怪的)字符串中的单词
- 当字符串是某个单词时给出输出?
- 替换字符串中的单词,但忽略引号中的单词
- 替换字符串位置 X 中的单词C++
- 视觉C++使用 map 来比较字符串中的每个单词
- 给定一个单词数组和一个字符串,如何计算给定字符串中的所有单词
- 输出返回编号。等于输入字符串的单词的字符串数
- 在字符串的每个单词的末尾插入字符串
- 分析字符串中的双精度和单词
- 如何使用运算符>>在自定义字符串中输入多个单词?
- 反转字符串中单词的位置,而不更改 O(1) 空格限制中特殊字符的顺序
- 使用正则表达式c++从单词和分隔符之间的字符串中提取所有子字符串
- 从文件 (C++) 输入两个单词字符串
- 在一行中输入具有其他输入类型的多个单词字符串
- 打印以 "a" 开头的单词(字符串中)
- 如何让我的代码以不会切断单词(字符串)的方式运行?
- 句子变成单词c++字符串