-->

program to understand typedef

using codeblocks
------------------------------------------------------------------------------------------
//understanding typedef
#include <stdio.h>
int main()
{
    typedef int second_type;// creates another data type named second_type. It gets all property of 'int'
    second_type a,b,c;      // second_type is working as integer data type.
    printf("enter a,b,and c\n");
    scanf("%d%d%d",&a,&b,&c);  //gets input
    printf("a=%d,b=%d and c=%d",a,b,c);//prints output
    return 0;
}

------------------------------------------------------------------------------------------
using turboc++
------------------------------------------------------------------------------------------

//understanding typedef
#include <stdio.h>
#include<conio.h>
int main()
{
    typedef int second_type;// creates another data type named second_type. It gets all property of 'int'
    second_type a,b,c;      // second_type is working as integer data type.
    printf("enter a,b,and c\n");
    scanf("%d%d%d",&a,&b,&c);  //gets input
    printf("a=%d,b=%d and c=%d",a,b,c);//prints output
   getch(); 
  return 0;
}

Program to understand typedef for struct.

using codeblocks
----------------------------------------------------------------------------------------
//understanding typedef with struct
#include <stdio.h>
typedef struct                   // typedef for struct to assign its property to access
{
    char name[40];              //members
    char add[40];
    int roll;
}access;                         // it is being tag (struct). It has got all property of struct
    access first;                 //variable of tag access. we can also put inside main function.
int main()
{
    printf("enter name\n");
    gets(first.name);            //gets input
    printf("enter add\n");
    gets(first.add);
    printf("enter roll\n");
    scanf("%d",&first.roll);
    printf("name=%s , address=%s and roll=%d\n",first.name,first.add,first.roll);//displays output.
    return 0;
}
-------------------------------------------------------------------------------------
Or
--------------------------------------------------------------------------------
//understanding typedef with struct
#include <stdio.h>
typedef struct   tag                // typedef for struct to assign its property to access via 'tag'
{
    char name[40];              //members
    char add[40];
    int roll;
}access;                         // it is being tag (struct). It has got all property of struct
    access first;                 //variable of tag access. we can also put inside main function.
int main()
{
    printf("enter name\n");
    gets(first.name);            //gets input
    printf("enter add\n");
    gets(first.add);
    printf("enter roll\n");
    scanf("%d",&first.roll);
    printf("name=%s , address=%s and roll=%d\n",first.name,first.add,first.roll);//displays output.
    return 0;
}

//note: putting a tag doesnot make any different. We have to use same method as given in above //example.
//Mostly, the tag is unimportant.

---------------------------------------------------------------------------------------------------
using turboC++
-------------------------------------------------------------------------

//understanding typedef with struct
#include <stdio.h>
#include<conio.h>
typedef struct                   // typedef for struct to assign its property to access
{
    char name[40];              //members
    char add[40];
    int roll;
}access;                         // it is being tag (struct). It has got all property of struct
    access first;                 //variable of tag access. we can also put inside main function.
int main()
{
    printf("enter name\n");
    gets(first.name);            //gets input
    printf("enter add\n");
    gets(first.add);
    printf("enter roll\n");
    scanf("%d",&first.roll);
    printf("name=%s , address=%s and roll=%d\n",first.name,first.add,first.roll);//displays output.
    getch();
    return 0;
}

program to copy a string to another using pointer passed to function

using codeblocks
--------------------------------------------------------------------------------------------------------------
//program to copy a string to another using pointer passed to function// program title
#include <stdio.h>                   //header file
#include <string.h>                   // header file to handle string
void string_length(char [],char[]);    // function prototype with character array
int main()
{
    char string[50],string1[50];            // character string
    puts("enter string1 and string2\n");
    gets(string);              //gets string
    gets(string1);
    string_length(string,string1);     //calling of function with string as parameter
                               // here, string is passed  as reference to formal parameter
    return 0;
}
void string_length(char *strings,char *strings1)// this accepts string with address from main function
{
     puts(strings);
     puts(strings1);
     printf("after copying\n");
     strcpy(strings,strings1);        // copies string
     puts(strings);          //displays string
}
//note: we can also use char string[] with void string_length in body line. It works.
//once you try.It runs.
//but we can not pass string as pointer in prototype.
// i.e. void string_length(char *[]);
--------------------------------------------------------------------------------------------
using turboc++
------------------------------------------------------------------------------------------
//program to copy a string to another using pointer passed to function// program title
#include <stdio.h>                   //header file
#include <string.h>                   // header file to handle string
#include<conio.h>
void string_length(char [],char[]);    // function prototype with character array
int main()
{
    char string[50],string1[50];            // character string
    puts("enter string1 and string2\n");
    gets(string);              //gets string
    gets(string1);
    string_length(string,string1);     //calling of function with string as parameter
                               // here, string is passed  as reference to formal parameter
getch();    
return 0;
}
void string_length(char *strings,char *strings1)// this accepts string with address from main function
{
     puts(strings);
     puts(strings1);
     printf("after copying\n");
     strcpy(strings,strings1);        // copies string
     puts(strings);          //displays string
}
//note: we can also use char string[] with void string_length in body line. It works.
//once you try.It runs.
//but we can not pass string as pointer in prototype.
// i.e. void string_length(char *[]);

program to reverse a string using pointer. Pass pointer to function.

using codeblocks
-----------------------------------------------------------------------------------------------------
//program to find reverse of string using pointer passed to function// program title
#include <stdio.h>                   //header file
#include <string.h>                   // header file to handle string
void string_length(char []);    // function prototype with character array
int main()
{
    char string[50];            // character string
    puts("enter string\n");
    gets(string);              //gets string
    string_length(string);     //calling of function with string as parameter
                               // here, string is passed  as reference to formal parameter
    return 0;
}
void string_length(char *strings)// this accepts string with address
{
     strrev(strings);        // supplies length
     puts(strings);          //displays string
}
//note: we can also use char string[] with void string_length in body line. It works.
//once you try.It runs.
//but we can not pass string as pointer in prototype.
// i.e. void string_length(char *[]);
---------------------------------------------------------------------------------------

using turboC++
------------------------------------------------------------------------------------------------
//program to find reverse of string using pointer passed to function// program title
#include <stdio.h>                   //header file
#include <string.h>                   // header file to handle string
#include<conio.h>
void string_length(char []);    // function prototype with character array
int main()
{
    char string[50];            // character string
    puts("enter string\n");
    gets(string);              //gets string
    string_length(string);     //calling of function with string as parameter
                               // here, string is passed  as reference to formal parameter
   getch();
    return 0;
}
void string_length(char *strings)// this accepts string with address
{
     strrev(strings);        // supplies length
     puts(strings);          //displays string
}
//note: we can also use char string[] with void string_length in body line. It works.
//once you try.It runs.
//but we can not pass string as pointer in prototype.
// i.e. void string_length(char *[]);

program to get length of a string using pointer

using codeblocks
----------------------------------------------------------------------------------------------------------
//program to find length of string using pointer passed to function// program title
#include <stdio.h>                   //header file
#include <string.h>                   // header file to handle string
void string_length(char []);    // function prototype with character array.compiler supports this. You                                                      //can also write char string[50].
int main()
{
    char string[50];            // character string
    puts("enter string\n");
    gets(string);              //gets string
    string_length(string);     //calling of function with string as parameter
                               // here, string is passed  as reference to formal parameter
    return 0;
}
void string_length(char *strings)// this accepts string with address
{
   int length;
   length=strlen(strings);        // supplies length
   printf("total length=%d\n",length);//displays length
}

//note: we can also use char string[] with void string_length in body line. It works.
//once you try.It runs.
//but we can not pass string as pointer in prototype.
// i.e. void string_length(char *[]);

------------------------------------------------------------------------------------------------------
using turbo c++
-----------------------------------------------------------------------------------------------------
//program to find length of string using pointer passed to function// program title
#include <stdio.h>                   //header file
#include <string.h>                   // header file to handle string
#include<conio.h>
void string_length(char []);     // function prototype with character array.compiler supports this. You                                                      //can also write char string[50].

int main()
{
    char string[50];            // character string
    puts("enter string\n");
    gets(string);              //gets string
    string_length(string);     //calling of function with string as parameter
                               // here, string is passed  as reference to formal parameter
   getch();
    return 0;
}
void string_length(char *strings)// this accepts string with address
{
   int length;
   length=strlen(strings);        // supplies length
   printf("total length=%d\n",length);//displays length
}

//note: we can also use char string[] with void string_length in body line. It works.
//once you try.It runs.
//but we can not pass string as pointer in prototype.
// i.e. void string_length(char *[]);


Program to understand pointer passed to function.

using codeblocks
----------------------------------------------------------------------------------------------
//program to pick the greatest number using pointer passed to function
#include <stdio.h>            //header file
void max_number(int a[],int *);
int main()
{
    int a[100];                 //array declaration
    int i;
    int total;                   //variables declaration
    printf("enter value of total\n");
    scanf("%d",&total);              //input of total value of array
    printf("enter elements of array\n");
    for(i=0;i<total;i++)                   //execution of loop
    {
        printf("enter value for location=%d\t",i);
        scanf("%d",a+i);                  //input of element using array. here array acts as pointer.
                                          //It gets input using address starting from location 0.
    }
    max_number(a,&total);                //calling the function with passing of array and pointer
    return 0;
}
void max_number(int a[],int*p)
{
    int i,max;
    max=*(a+0);                          //It stores value stored in location 0

    for(i=0;i<*p;i++)                    //value of pointer being used
    {
       if(max<*(a+i))                   //comparison takes place
       {
         max=*(a+i);                    //assigning value
       }
    }
    printf("max value=%d",max);       //display of maximum value

}

----------------------------------------------------------------------------------------------------------
using turbo c++
------------------------------------------------------------------------------------------------------------------
//program to pick the greatest number using pointer passed to function
#include <stdio.h>            //header file
#include<conio.h>
void max_number(int a[],int *);
int main()
{
    int a[100];                 //array declaration
    int i;
    int total;                   //variables declaration
    printf("enter value of total\n");
    scanf("%d",&total);              //input of total value of array
    printf("enter elements of array\n");
    for(i=0;i<total;i++)                   //execution of loop
    {
        printf("enter value for location=%d\t",i);
        scanf("%d",a+i);                  //input of element using array. here array acts as pointer.
                                          //It gets input using address starting from location 0.
    }
    max_number(a,&total);                //calling the function with passing of array and pointer
   getch();
    return 0;
}
void max_number(int a[],int*p)
{
    int i,max;
    max=*(a+0);                          //It stores value stored in location 0

    for(i=0;i<*p;i++)                    //value of pointer being used
    {
       if(max<*(a+i))                   //comparison takes place
       {
         max=*(a+i);                    //assigning value
       }
    }
    printf("max value=%d",max);       //display of maximum value

}

program to count total number of words,space,consonants in a string using pointer

using codeblocks
-----------------------------------------------------------------------

//program to reverse a string using pointer//comment of program
#include <stdio.h>                         //header file
#include<ctype.h>
int main()                              //main function
{
    char name[40];                     //character declaration
    char *p;                          //pointer declaration.
    int length,vowel=0,conso=0,space=0,words=1;
    puts("enter string\n");           //display of message
    gets(name);                      // gets data/string
    length=strlen(name);             //stores length of string
    p=name+length;        // assigning total address as in given string; it becomes total taken from variable length starting from 0.
                      //p=name takes address location 0 to pointer.
    while(p>=name)                 //the value of 'p' decreases from location 15 until it reaches 0.
    {
        if(*p==' ')                 //prints the value stored in particular location
        {
            space++;
        }

        else if(tolower(*p)=='a' ||tolower(*p)=='e' || tolower(*p)=='i' || tolower(*p)=='o' || tolower(*p)=='u')
        {
            vowel++;
        }
        else if(tolower(*p)!='a' ||tolower(*p)!='e' || tolower(*p)!='i' ||
                tolower(*p)!='o' || tolower(*p)!='u' ||
                *p!=' ' || *p!='.')
        {
            conso++;
        }
        p--;
    }
    printf("total vowel=%d,total consonants=%d,total spaces=%d,total words=%d",vowel,conso,space,space+1);
    return 0;
}

----------------------------------------------------------------------------------------------------------
using turbo c++
----------------------------------------------------------------------------------------------------
//program to reverse a string using pointer//comment of program
#include <stdio.h>                         //header file
#include<ctype.h>
#include<conio.h>
int main()                              //main function
{
    char name[40];                     //character declaration
    char *p;                          //pointer declaration.
    int length,vowel=0,conso=0,space=0,words=1;
    puts("enter string\n");           //display of message
    gets(name);                      // gets data/string
    length=strlen(name);             //stores length of string
    p=name+length;        // assigning total address as in given string; it becomes total taken from variable length starting from 0.
                      //p=name takes address location 0 to pointer.
    while(p>=name)                 //the value of 'p' decreases from location 15 until it reaches 0.
    {
        if(*p==' ')                 //prints the value stored in particular location
        {
            space++;
        }

        else if(tolower(*p)=='a' ||tolower(*p)=='e' || tolower(*p)=='i' || tolower(*p)=='o' || tolower(*p)=='u')
        {
            vowel++;
        }
        else if(tolower(*p)!='a' ||tolower(*p)!='e' || tolower(*p)!='i' ||
                tolower(*p)!='o' || tolower(*p)!='u' ||
                *p!=' ' || *p!='.')
        {
            conso++;
        }
        p--;
    }
    printf("total vowel=%d,total consonants=%d,total spaces=%d,total words=%d",vowel,conso,space,space+1);
getch();    
return 0;
}