WNajyk 2021-12-30 16:39 采纳率: 100%
浏览 565
已结题

用C语言编写英文单词变复数形式的程序

编写一个函数RegularPlural,其功能是实现一个英文单词的复数形式。复数的规则为:
  (1) 如果单词末尾为s,x,z,ch或sh,则在后面加es
  (2) 如果单词末尾为y,且前一个字母为辅音(除a, e, i, o, u以外的其它情况),则把y改成ies。
  (3) 如果是其它情形,一律在后面加s。
  编写测试程序,输入一个长度小于20的单词,输出该单词的复数形式。
输入:
  box
输出:
  boxes
(用C语言解决)

  • 写回答

1条回答 默认 最新

  • a5156520 2021-12-30 17:07
    关注

    一个实现:

    
    #include <stdio.h>
    #include <string.h>
    void RegularPlural(char * str){
        
        int lens = strlen(str);
        char ch = str[lens-1];
        char pch = str[lens-2];
    
        //第一种情况 
        if((ch=='s')||(ch=='x')||(ch=='z')
        ||(ch=='h'&&pch=='c')||(ch=='h'&&pch=='s')){
            str[lens]='e';
            str[lens+1]='s';
            str[lens+2]='\0';
        }else if((ch=='y')&&(pch!='a'&&pch!='e'&&pch!='i'&&pch!='o'&&pch!='u')){ //第二种情况 
            str[lens-1]='i';
            str[lens]='e';
            str[lens+1]='s';
            str[lens+2]='\0';
        } else {  //其他 
            str[lens] = 's';
            str[lens+1]='\0';
        }
            
        
    }
    
    int main(void){
        
        char word[30];
        
        //循环测试代码 
        while(1){
            gets(word);
            RegularPlural(word);
            printf("%s\n",word);
        }
        
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 1月7日
  • 已采纳回答 12月30日
  • 创建了问题 12月30日

悬赏问题

  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料