我必须编写这个程序,当用户输入单词时,它会将其更改为复数版本。我有三条规则。
我有这个名为WhichRule( char word[], char plural [])
的函数,我应该编写if语句,这样我才能看到要应用的规则,函数WhichRule
将调用RuleOne( char word[], char plural [])
,RuleTwo( char word[], char plural [])
和RuleThree( char word[], char plural [])
。
我在编写if语句时遇到问题,我要复制的代码是我尝试编写if语句的两种不同方式,但没有一种方法可行。我将不胜感激任何帮助。
void WhichRule(char word[], char plural[])
{
int len = strlen(word);
if (word[len - 1] = 'y')
{
ApplyRuleOne(plural, word);
printf("this");
}
else if (word[len - 2, len - 1] = 'c', 'h')
{
ApplyRuleTwo(plural, word);
printf("is");
}
else if (word[len - 2] == 's' && word[len - 1] == 'h')
{
ApplyRuleTwo(plural, word);
printf("a");
}
else
{
ApplyRuleThree(plural, word);
printf("test");
}
}
答案 0 :(得分:2)
<强>问题强>
这是一个混淆的常见错误&#39; =&#39;与&#39; ==&#39;。 &#39; =&#39;赋值运算符ans用于为变量赋值 所以
if (word[len - 1] = 'y')
这将分配值&#39; y&#39;变量词[len-i]
<强>解决方案强>
要比较值,请使用&#39; ==&#39;像
if (word[len - 1] == 'y')
<强>代码强>
void WhichRule(char word[], char plural[])
{
int len = strlen(word);
if (word[len - 1] == 'y')
{
ApplyRuleOne(plural, word);
printf("this");
}
else if (word[len - 2] == 'c' && word[len - 1] == 'h')
{
ApplyRuleTwo(plural, word);
printf("is");
}
else if (word[len - 2] == 's' && word[len - 1] == 'h')
{
ApplyRuleTwo(plural, word);
printf("a");
}
else
{
ApplyRuleThree(plural, word);
printf("test");
}
}
[P.S:检查最后一个字符的行也存在问题&#39; ch&#39;。