Advertisement
utroz

Play the String Handling

Dec 25th, 2011
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.83 KB | None | 0 0
  1. /* Developed by Utroz
  2.  * Access: http://www.oakcoders.com
  3.  * File: str_handling.c
  4.  *
  5.  * printk(KERN_DEBUG "Dennis Ritchie(d.m.r) died. Rest in peace.");
  6.  */
  7.  
  8. #include <stdlib.h>
  9.  
  10. int get_line(char *, int);
  11. void remove_blank(char *);
  12. void sort_array(char *, int);
  13. void str_copy(char *, char *);
  14. int str_length(char *);
  15. char *str_reverse(char *);
  16.  
  17. /* This function fetch a character string and return its value */
  18. get_line(char *args, int limit)
  19. {
  20.         short i;
  21.         char c;
  22.        
  23.         for(i = 0; i < (limit-1) && ((c = getchar()) != EOF && c != '\n'); i++)
  24.         if(c != ' ' && c != '\t' && c != '\b')
  25.                 args[i] = c;
  26.        
  27.         args[i] = '\0';
  28.        
  29.         return i;
  30. }
  31.  
  32. /* This function remove entirely blank lines */
  33. void remove_blank(char *args)
  34. {
  35.         short i;
  36.        
  37.         for(i = 0; args[i]; i++) {
  38.         if(args[i] == ' ')
  39.                 sort_array(args, i);
  40.         }
  41. }
  42.  
  43. void sort_array(char *args, int i)
  44. {
  45.         for(; args[i]; i++)
  46.         args[i] = args[i+1];
  47. }
  48.  
  49. /* Copy a from string to a destination string */
  50. void str_copy(char *to, char *from)
  51. {
  52.         while(*(to++) = *(from++));
  53. }
  54.  
  55. int str_length(char *args)
  56. {
  57.         signed char count;
  58.        
  59.         for(count = 0; args[count]; count++);
  60.        
  61.         return (int) count;
  62. }
  63.  
  64. /* Reverse a character string
  65.  * Example to use: char *ptr;
  66.  *     ptr = reverse_str(str);
  67.  * At end of function put free(ptr);
  68.  */
  69. char *str_reverse(char *args)
  70. {
  71.         char *new_str;
  72.         short i,j;
  73.        
  74.         new_str = malloc(str_length(args) * sizeof(char));
  75.         if(new_str == NULL) {
  76.         puts("Memory can't be allocated!");
  77.         exit(EXIT_FAILURE);
  78.         }  
  79.        
  80.         j = 0;        
  81.         for(i = str_length(args)-1; i >= 0; i--)
  82.         new_str[j++] = args[i];
  83.        
  84.         return new_str;
  85. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement