C programming Language – Code snippets 2
Posted by danielMar 15
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
No comments
You must be logged in to post a comment.