使用以下函数,我可以传入两个字符串(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++;
}
}
}
问题出在哪里,以便通过敲出整个单词来正常工作?
感谢您的时间。
答案 0 :(得分:0)
由于我似乎无法理解您的问题,因此我想为您制作一个功能,看看这是否是您正在寻找的:
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;
}
根据您的测试用例输出:&#34; h *** o * y n ***是&#34;