C语言,字符串,单数变复数
输入一个名词英语单词,按照英语语法规则把单数变成复数。规则如下:(1)以辅音字母y结尾,变y为i,再加es;(2)以s,x,ch,sh结尾,则加es;(3)以元音o结尾,...
输入一个名词英语单词,按照英语语法规则把单数变成复数。规则如下: (1) 以辅音字母y结尾,变y为i,再加es; (2) 以s, x, ch, sh结尾,则加es; (3) 以元音o结尾,则加es; (4) 其他情况加上s。
输入一个字符串,仅含小写字母,长度不超过20。
Output
输出其对应的复数形式。
#include<stdio.h>
#include<string.h>
int main()
{
int i;
char word[31];
scanf("%s",word);
i=strlen(word);
if(word[i-1]=='y')
{
word[i-1]='i';
word[i]='e';
word[i+1]='s';
}
else if(word[i-1]=='s'||word[i-1]=='x')
{
word[i]='e';
word[i+1]='s';
}
else if(word[i-1]=='h')
{
if(word[i-2]=='s'||word[i-2]=='c')
{
word[i]='e';
word[i+1]='s';
}
}
else if(word[i-1]=='o')
{
word[i]='e';
word[i+1]='s';
}
else
word[i]='s';
puts(word);
}
我的代码,
为什么输出的答案会变复数后随机加其他东西。 展开
输入一个字符串,仅含小写字母,长度不超过20。
Output
输出其对应的复数形式。
#include<stdio.h>
#include<string.h>
int main()
{
int i;
char word[31];
scanf("%s",word);
i=strlen(word);
if(word[i-1]=='y')
{
word[i-1]='i';
word[i]='e';
word[i+1]='s';
}
else if(word[i-1]=='s'||word[i-1]=='x')
{
word[i]='e';
word[i+1]='s';
}
else if(word[i-1]=='h')
{
if(word[i-2]=='s'||word[i-2]=='c')
{
word[i]='e';
word[i+1]='s';
}
}
else if(word[i-1]=='o')
{
word[i]='e';
word[i+1]='s';
}
else
word[i]='s';
puts(word);
}
我的代码,
为什么输出的答案会变复数后随机加其他东西。 展开
1个回答
展开全部
x修改后:
#include<stdio.h>
void main()
{
int n,k=0;
char a[20];
printf("输入一个字符串\n");
scanf("%s",a);
for(n=0;a[n]!='\0';n++)//a[n]!='\0'
{
if(a[n]<='Z'&&a[n]>='A')
{
k=k+1;
a[n] = a[n]+32;
printf("%c",a[n]);
}
if(a[n]<='z'&&a[n]>='a')
{
k=k+1;
a[n] = a[n]-32;
printf("%c",a[n]);
}
else
{
printf("%c",a[n]);
}
}
printf("更改个数%d\n",k);
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询