View difference between Paste ID: vLgaZ7DU and Fn5MW8aB
SHOW: | | - or go back to the newest paste.
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.
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. 
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
    }