Saturday, February 2, 2013

Substring in c programming, c substring

Substring in c programming: c programming code to find a substring from a given string and for all substrings of a string, For example substrings of string "the" are "t", "th", "the", "h", "he" and "e" to find substring we create our own c substring function which returns a pointer to string. String address, length of substring required and position from where to extract substring are the three arguments passed to function. String.h does not contain any library function to directly find substring.

C substring code

#include <stdio.h>
#include <malloc.h>
 
char* substring(char*, int, int);
 
main() 
{
   char string[100], *pointer;
   int position, length;
 
   printf("Enter a string\n");
   gets(string);
 
   printf("Enter the position and length of substring\n");
   scanf("%d%d",&position, &length);
 
   pointer = substring( string, position, length);
 
   printf("Required substring is \"%s\"\n", pointer);
 
   free(pointer);
 
   return 0;
}
 
/*C substring function: It returns a pointer to the substring */
 
char *substring(char *string, int position, int length) 
{
   char *pointer;
   int c;
 
   pointer = malloc(length+1);
 
   if (pointer == NULL)
   {
      printf("Unable to allocate memory.\n");
      exit(EXIT_FAILURE);
   }
 
   for (c = 0 ; c < position -1 ; c++) 
      string++; 
 
   for (c = 0 ; c < length ; c++)
   {
      *(pointer+c) = *string;      
      string++;   
   }
 
   *(pointer+c) = '\0';
 
   return pointer;
}
C substring program output:

 

 

 

 

C code for all substrings of a string

#include <stdio.h>
#include <string.h>
#include <malloc.h>
 
char* substring(char*, int, int);
 
main() 
{
   char string[100], *pointer;
   int position = 1, length = 1, temp, string_length;
 
   printf("Enter a string\n");
   gets(string);
 
   temp = string_length = strlen(string);
 
   printf("Substring of \"%s\" are\n", string);
 
   while (position <= string_length)
   {
      while (length <= temp)
      {
         pointer = substring(string, position, length);
         printf("%s\n", pointer);
         free(pointer);
         length++;
      }
      temp--;
      position++;
      length = 1;
   }
 
   return 0;
}
 
/* Use substring function given in above c program*/ 
Substring code output:

Tuesday, January 29, 2013

add digits of number in c


C program to add digits of a number: Here we are using modulus operator(%) to extract individual digits of number and adding them.

C programming code

#include <stdio.h>
 
main()
{
   int n, sum = 0, remainder;
 
   printf("Enter an integer\n");
   scanf("%d",&n);
 
   while(n != 0)
   {
      remainder = n % 10;
      sum = sum + remainder;
      n = n / 10;
   }
 
   printf("Sum of digits of entered number = %d\n",sum);
 
   return 0;
}
For example if the input is 98, sum(variable) is 0 initially
98%10 = 8 (% is modulus operator which gives us remainder when 98 is divided by 10).
sum = sum + remainder
so sum = 8 now.
98/10 = 9 because in c whenever we divide integer by another integer we get an integer.
9%10 = 9
sum = 8(previous value) + 9
sum = 17
9/10 = 0.
So finally n = 0, loop ends we get the required sum.
Output of program:

Add digits using recursion

#include <stdio.h>
 
int add_digits(int);
 
int main() {
  int n, result;
 
  scanf("%d", &n);
 
  result = add_digits(n);
 
  printf("%d\n", result);
 
  return 0;
}
 
int add_digits(int n) {
  static int sum = 0;
 
  if (n == 0) {
    return 0;
  }
 
  sum = n%10 + add_digits(n/10);
 
  return sum;
}