C programming Language – Code snippets
C Programming Language, 2nd Edition
Compiling and running the sample codes using gcc :
gcc sample.c -o sample ./sample
Chapter 2 – Types, Operators and Expressions
1.Convert to lower case.
#include<stdio.h> int main(int argc, char *argv[]) { while(*argv[1]) { if(*argv[1] >='A' && *argv[1] <='Z') { putchar(*argv[1] + 'a' -'A'); *++argv[1]; } else {putchar(*argv[1]); *++argv[1]; } } printf("\n"); return 0; }
2. Get bits
#include<stdio.h> unsigned getbits(unsigned x,int p, int n); int main() { int x=16; printf("%d\n",getbits(x,4,3)); return 0; } unsigned getbits(unsigned x, int p, int n) { return ( x >> (p+1-n)) & ~(~0 << n); }
3. Count one bits
#include<stdio.h> int bitcount(unsigned x); int main() { unsigned short x=38; printf("%d has %d 1 bits\n",x,bitcount(x)); return 0; } int bitcount(unsigned x) { int b; for(b=0; x!=0; x>>=1) if (x&1) b++; return b; }
4. Remove character from string
#include<stdio.h> int main(int argc, char *argv[]) { if (argc !=3) { printf("usage: del string char\n"); return -1;} while(*argv[1]) { if(*argv[1] != *argv[2]) { putchar(*argv[1]); *++argv[1]; } else { *++argv[1]; continue; } } printf("\n"); return 0; }
5. Convert x to binary
#include<stdio.h> #define LEN 16 int main() { int x=112,counter=0; int binary[LEN]={0}; while(x) { binary[counter]=x%2; x/=2; counter++; } while(counter>=0) { printf("%d",binary[counter]); counter--; } printf("\n"); return 0; }
6. Convert char to integer
#include<stdio.h> #define NUM 1 int main(int argc, char *argv[]) { int counter=1,n=0; if(argc!=2) { printf("usage: atoi arglist\n"); return -1;} while(*argv[NUM]) { if(*argv[NUM]>='0' && *argv[NUM]<='9') { n=10*n+(*argv[NUM]-'0'); *++argv[NUM]; } else { *++argv[NUM]; continue; } } printf("number=%d\n",n); return 0; }
Reference –
https://www.amazon.com/Programming-Language-2nd-Brian-Kernighan/dp/0131103628#reader_0131103628