描述

给定一个单词,如果该单词以er、ly或者ing后缀结尾, 则删除该后缀(题目保证删除后缀后的单词长度不为0), 否则不进行任何操作。


格式

输入格式

输入一行,包含一个单词(单词中间没有空格,每个单词最大长度为32)。

输出格式

输出按照题目要求处理后的单词。


样例

输入样例

referer

输出样例

refer


限制

时间限制:1000 ms
内存限制:65536 KB


代码

  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<string.h>
  4. #define Maxsize 32
  5. typedef struct Str
  6. {
  7. char* ch;
  8. int lenth;
  9. int strsiae;
  10. }Str;
  11. Str initStr()
  12. {
  13. Str L;
  14. L.lenth = 0;
  15. L.ch = (char*)malloc(Maxsize * sizeof(char));
  16. L.strsiae = Maxsize;
  17. return L;
  18. }
  19. int CreatStr(Str L,char* a)
  20. {
  21. if (strlen(a) > Maxsize)
  22. {
  23. return 0;
  24. }
  25. int i;
  26. for (i = 0; i < strlen(a); i++)
  27. {
  28. L.ch[i] = a[i];
  29. L.lenth++;
  30. }
  31. L.lenth = i;
  32. return 1;
  33. }
  34. void Delete(Str L,int flag,int lenth)
  35. {
  36. int m;
  37. if (flag == 1||flag==2)
  38. {
  39. for (m = 0; m < lenth - 2; m++)
  40. {
  41. printf("%c", L.ch[m]);
  42. }
  43. }
  44. else if (flag == 3)
  45. {
  46. for (m = 0; m < lenth - 3; m++)
  47. {
  48. printf("%c", L.ch[m]);
  49. }
  50. }
  51. }
  52. void MatchStr(Str L,int lenth)
  53. {
  54. int j;
  55. int flag = 0;
  56. for (j = lenth; j > 0; j--)
  57. {
  58. if (L.ch[lenth-1] == 'r' && L.ch[lenth-2] == 'e')
  59. {
  60. flag = 1;
  61. Delete(L,flag,lenth);
  62. break;
  63. }
  64. else if (L.ch[lenth-1] == 'y' && L.ch[lenth - 2] == 'l')
  65. {
  66. flag = 2;
  67. Delete(L, flag,lenth);
  68. break;
  69. }
  70. else if (L.ch[lenth-1] == 'g' && L.ch[lenth - 2] == 'n' && L.ch[lenth - 3] == 'i')
  71. {
  72. flag = 3;
  73. Delete(L, flag,lenth);
  74. break;
  75. }
  76. else
  77. {
  78. int m;
  79. for (m = 0; m < lenth; m++)
  80. {
  81. printf("%c", L.ch[m]);
  82. break;
  83. }
  84. }
  85. }
  86. }
  87. int main()
  88. {
  89. char a[23];
  90. gets(a);
  91. int lenth=strlen(a);
  92. Str L=initStr();
  93. CreatStr(L,a);
  94. /*int n;
  95. for (n = 0; n < lenth; n++)
  96. {
  97. printf("%c",L.ch[n]);
  98. }
  99. printf("\n");
  100. */
  101. MatchStr(L,lenth);
  102. printf("\n");
  103. return 0;
  104. }