描述
给定一个单词,如果该单词以er、ly或者ing后缀结尾, 则删除该后缀(题目保证删除后缀后的单词长度不为0), 否则不进行任何操作。
格式
输入格式
输入一行,包含一个单词(单词中间没有空格,每个单词最大长度为32)。
输出格式
输出按照题目要求处理后的单词。
样例
输入样例
输出样例
refer
限制
时间限制:1000 ms
内存限制:65536 KB
代码
#include<stdio.h>#include<stdlib.h>#include<string.h>#define Maxsize 32typedef struct Str{char* ch;int lenth;int strsiae;}Str;Str initStr(){Str L;L.lenth = 0;L.ch = (char*)malloc(Maxsize * sizeof(char));L.strsiae = Maxsize;return L;}int CreatStr(Str L,char* a){if (strlen(a) > Maxsize){return 0;}int i;for (i = 0; i < strlen(a); i++){L.ch[i] = a[i];L.lenth++;}L.lenth = i;return 1;}void Delete(Str L,int flag,int lenth){int m;if (flag == 1||flag==2){for (m = 0; m < lenth - 2; m++){printf("%c", L.ch[m]);}}else if (flag == 3){for (m = 0; m < lenth - 3; m++){printf("%c", L.ch[m]);}}}void MatchStr(Str L,int lenth){int j;int flag = 0;for (j = lenth; j > 0; j--){if (L.ch[lenth-1] == 'r' && L.ch[lenth-2] == 'e'){flag = 1;Delete(L,flag,lenth);break;}else if (L.ch[lenth-1] == 'y' && L.ch[lenth - 2] == 'l'){flag = 2;Delete(L, flag,lenth);break;}else if (L.ch[lenth-1] == 'g' && L.ch[lenth - 2] == 'n' && L.ch[lenth - 3] == 'i'){flag = 3;Delete(L, flag,lenth);break;}else{int m;for (m = 0; m < lenth; m++){printf("%c", L.ch[m]);break;}}}}int main(){char a[23];gets(a);int lenth=strlen(a);Str L=initStr();CreatStr(L,a);/*int n;for (n = 0; n < lenth; n++){printf("%c",L.ch[n]);}printf("\n");*/MatchStr(L,lenth);printf("\n");return 0;}
