fork(1) download
  1. #include <stdio.h>
  2. #include <memory.h>
  3.  
  4. #define MAXLINE 1000
  5.  
  6. int xgetline(char line[], int maxline);
  7. void copy(char to[], char from[]);
  8. void reverse(char s[], int len);
  9.  
  10. int main(int argc, char **argv){
  11. int c;
  12. int i, len;
  13. char line[MAXLINE];
  14. while((len = xgetline(line, MAXLINE)) > 0){
  15. for(i = len - 1; (line[i] == ' ' || line[i] == '\t' || line[i] == '\n'); i--);
  16. line[++i] = '\n';
  17. line[++i] = '\0';
  18. //Теперь i - фактическая длина строки
  19. reverse(line, i);
  20. printf("%s", line);
  21. }
  22.  
  23.  
  24. return 0;
  25. }
  26.  
  27. int xgetline(char s[], int lim){
  28. int c, i;
  29.  
  30. for(i = 0; i < lim-1 && (c=getchar()) != EOF && c != '\n'; i++)
  31. s[i] = c;
  32. if(c == '\n'){
  33. s[i] = '\n';
  34. i++;
  35. }
  36. s[i] = '\0';
  37. return i;
  38. }
  39.  
  40. void copy(char from[], char to[]){
  41. int i;
  42.  
  43. i = 0;
  44. while((to[i] = from[i]) != '\0')
  45. i++;
  46. }
  47.  
  48. void reverse(char s[], int len){
  49. int i, mid;
  50. char temp;
  51.  
  52. mid = len / 2;
  53. for(i = 0; i < mid; i++){
  54. temp = s[i];
  55. s[i] = s[len - i - 1];
  56. s[len - i - 1] = temp;
  57. }
  58. }
Success #stdin #stdout 0s 2012KB
stdin
a                                                       
abc     
abcd          
abcdef        
stdout
a
cba
dcba
fedcba