Advertisement
Guest User

Davidthefat Code

a guest
Feb 17th, 2013
43
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.85 KB | None | 0 0
  1.     void bitprint(int n)
  2.     {
  3.             for(int i = sizeof(n)*8-1; i >= 0; i --)//C99 standard for loop and comment.
  4.                     printf("%d", (n&(1<<i))>>i);
  5.     }
  6.  
  7. It's exactly not a one liner, but this prints out the integer in binary form. The parameter can be changed to a long if you want.
  8.  
  9.    int gcd(int p, int q)
  10.    {
  11.            for(int i = p < q?p:q; i > 0; i --)
  12.                    if(!(p%i) && !(q%i))
  13.                            return i;
  14.            return -1;
  15.    }
  16.  
  17. This is not a one liner either, but I like it. It returns the greatest common denominator.
  18.  
  19.    /**
  20.     * @description Finds the character in the string
  21.     * @param string to find in
  22.     * @param character to find
  23.     * @return the pointer to the character in string
  24.     */
  25.    char *find_chr(char *input, char find)
  26.    {
  27.            while(*input != find&&*input++)
  28.                    ;
  29.            return input;
  30.    }
  31.  
  32.    /**
  33.     * @description This splits the string at the inputted character
  34.     * @param original string
  35.     * @param pointer to lower half of the string
  36.     * @param pointer to other half of the string
  37.     * @param character to find and split at
  38.     * @return void
  39.     */
  40.    
  41.    void split(char *orig, char **p, char **s, char c)
  42.    {
  43.            char *temp = find_chr(orig, c);
  44.            char *pop = (char*)malloc(sizeof(char) * (temp - orig));
  45.            *p = pop;
  46.            while(orig != temp)
  47.                    *pop++ = *orig++;
  48.            *s = ++temp;
  49.    }
  50.    
  51.  
  52.  
  53.    /**
  54.     * @description This shifts every character over indicated number of times
  55.     * @param input string to be manipulated
  56.     * @param number of steps to shift over
  57.     * @return void
  58.     */
  59.    void Caesar(char **input, int shift)
  60.    {
  61.            char *temp = (char*)malloc(sizeof(char)*strlen(*input));
  62.            for(int i = 0; i < strlen(*input); i ++){
  63.                    if(isalpha(*(*input+i)))
  64.                            *(temp+i) = (*(*input+i)+shift>122?(96+(shift-(122-tolower(*(*input+i))))):tolower(*(*input+i))+shift);
  65.                    else
  66.                            *(temp+i) = ' ';
  67.            }
  68.            *input = temp;
  69.    }
  70.  
  71.    
  72.    /**
  73.     * @description This reverses the Caesar algorithm
  74.     * @param input string to be manipulated
  75.     * @param number of steps to shift over
  76.     * @return void
  77.     */
  78.    void deCaesar(char **input, int shift)
  79.    {
  80.            char *temp = (char*)malloc(sizeof(char)*strlen(*input));
  81.            for(int i = 0; i < strlen(*input); i ++){
  82.                    if(isalpha(*(*input+i)))
  83.                            *(temp+i) = (*(*input+i)-shift<97?(123-(shift-(tolower(*(*input+i))-97))):tolower(*(*input+i))-shift);
  84.                    else
  85.                            *(temp+i) = ' ';
  86.            }
  87.            *input = temp;
  88.    }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement