我需要创建一个函数,该函数接收两个字符串,表示要完成的单词和参考单词,以及与建议字母相对应的字符,然后返回与要完成的单词相对应的字符串,其中所有相对于参考词,增加了建议的字母的出现次数。
示例:CompleterMot (".. IM ..", "ANIMAL", 'A')
应该返回"A.IMA."
。
我不明白如何在要完成的单词中添加所有出现的字母。
static string CompleterMot(string motincomplet, string motoriginal, char lettrepropos)
{
string output = " ";
for (int i = 0; i < motoriginal.Length; i++)
{
if((motoriginal[i] == lettrepropos))
{
output = motincomplet;
if(output[i] != lettrepropos)
output += (char)(lettrepropos);
}
}
return output;
}
最后,我有..IM..A
,而且我不知道如何修正代码。
答案 0 :(得分:2)
在循环中,您正在这样做:output = motincomplet;
会覆盖先前的结果。然后,将期望的字母附加到结果为"..IM.." + 'A'
的输出上。
您可以使用StringBuilder
进行字符串操作,这非常好,并且可以直接在给定索引处更改字符:
static string CompleterMot(string motincomplet, string motoriginal, char lettrepropos)
{
var sb = new System.Text.StringBuilder(motincomplet);
for (int i = 0; i < motoriginal.Length; i++)
{
if (motoriginal[i] == lettrepropos)
{
sb[i] = lettrepropos;
}
}
return sb.ToString();
}