Built-in functions in C
The function is a set of instructions and statements enclosed in the "{}" delimiter. In c, there are two types of functions.
- Pre-define functions/ Built-in functions
- User define function.
Built-in functions in C:-
These functions already exist in the libraries and we need not declare and define these functions. We can directly call these functions by including the header files in which these functions are present. For example, by using stdio.h header file, we can perform scanf(), printf() functions, scanf() is used to take input from the user and printf() is used to print the output on the console screen.
List of header files present in C:-
S. No | Header file | Description | Functions and macro |
1 | stdio. h | In this header file we have standard input and output functions. | printf (), scanf (), getc (), putc (), fopen (), fclose (), remove (), fflush (). |
2 | conio. h | This header file consist of console input and out put functions. | clrscr (), getch (), getche (), textcolour (), textbackground (). |
3 | string. h | This header file consist of string handling functions. | strlen (), strrev (), strcat (), strcmp (), strchr (), strcpy (), strupr (), strlwr (), strset (), etc. |
4 | stdlib. h | Memory allocation functions are present in stdlib. h header file. | malloc(), calloc(), realloc(), atof(), atoi(), rand(),etc. |
5 | math. h | All function related to maths are present in this header file. | pow (), sqrt (), sin (), tan (), log (), tanh (), sinh (), floor (), round (), ceil (), etc. |
6 | ctype. h | The functions related to character handling present in this header file. | isalpha (), isdigit (), isalnum (), isspace (), islower (), isupper (), isxdigit (), isprint (), isgraph (), tolower (), isupper(), etc. |
7 | signal. h | The functions related to signal handling are present in this header file. | raise, signal. |
8 | stdarg. h | The functions related to yhr variable argument are present in this header file. | va_arg, va_end, va_start. |
9 | setjmp. h | Jump functions are present in this header file. | longjump (), setjmp (). |
10 | errno. h | Exception handling functions are present in this header file. | Macro: errno, Edom etc. |
11 | local. h | Local functions are defined in this header file. | setlocale(), localleconv (). |
12 | assert. h | Diagnostics functions are defined in this header file. | assert(). |
13 | Time.h | Time related functions are defined in this header file. | setdate (), getdate (), clock (), time (), difftime (), strftime (), mktime (), ctime (), asctime (), etc. |
Example :
#include< stdio. h >
#define max 100 // macro
int main ()
{
Int a[ max ], i, n;
printf (“ Enter the size of the array”, &n); // reading the array size less then or //equal to 100
scanf (“%d”, &n);
printf (“ \nEnter the array elements are:”);
for( i=0;i <n; i++) // scanning array elements
{
scanf (“%d”,&a[i]);
}
printf (“ \nThe array elements are:”); // printing the array elements
for( i=0;i <n; i++) // printing array elements
{
printf(“%d”,a[i]);
}
Output:
Enter the value of n: 5
Enter the array elements: 1 2 3 4 5
The array elements are: 1 2 3 4 5
Example 2:
//Program to print sum of array elements using stdio.h library functions.
#include<stdio.h>
#define max 100 //maximum size of the array is 100
int main ()
{
int a[ max ], i, n, sum= 0;
printf (“ Enter the size of the array”, &n);
scanf (“%d”, &n); //reading the array size less then or equal to 100
printf (“ \nEnter the array elements are:”);
for( i=0;i <n; i++) // scanning array elements
{
scanf (“%d”,&a[i]);
}
for( i=0;i <n; i++) // scanning array elements
{
sum =sum + a[i];
}
printf (“ The sum of the array elements is = %d”, sum); // printing the sum
return 0;
}
Output:
Enter the value of n: 5
Enter the array elements: 1 2 3 4 5
The sum od the array elements is = 15
Example 3:
//Program to print given character using conio.h library functions.
#include <stdio.h>
#include <conio.h>
int main ()
{
char c;
printf (“ Enter any character: ”);
c = getche(); // reading the character
printf( “The Entered character is = %s ”, c); // printing the character
return 0;
}
Output:
Enter any character: JavaTpoint
The Entered character is = JavaTpoint
Example 4:
//Program to print the given array using stdlib.h library functions.
#include <stdio.h>
#include<stdlib.h>
int main() {
int n, *array,i;
printf(" Enter the size of the array: ");
scanf("%d",&n); // fixing the size of the array
array= (int*)malloc(n* sizeof(int)); // Dynamic memory allocation
printf(" \nEnter the array elements: ");
for(i=0; i<n; i++) // reading the array elements
{
scanf("%d",&array[i]);
}
printf("The array elements are:\n");
for(i=0; i<n; i++) // printing the array elements
{
printf("a[%d] = %d\n", i, array[i]);
}
return 0;
}
Output:
Enter the size of the array: 6
Enter the array elements: 1 2 3 4 5 6
The array elements are:
a[0] = 1
a[1] = 2
a[2] = 3
a[3] = 4
a[4] = 5
a[5] = 6
Example 5:
/* program to find the square root and square of the given number using math.h library functions. *\
#include <stdio.h>
#include<math.h>
int main() {
double n, r;
int s;
printf(" Enter the value of n: ");
scanf("%lf", &n);
r= sqrt(n); //calling sqrt function
printf("\n The square root of the given number is = %0.2lF", r); // printing square root
s= n*n; // calculating square
printf("\nThe square root of the given number is = %d", s); // printing square value of n
return 0;
}
Output:
Enter the value of n: 5
The square root of the given number is = 2.24
The square root of the given number is = 25
Example 6:
// program to print the length and reverse string using string.h library functions
#include <stdio.h>
#include<string.h>
int main() {
char s[100], b[100]; // declaring the size of the strings
int a;
printf(" Enter the string: ");
scanf("%s", s); // reading the string
a = strlen(s); // calculating the string
b= strrev(s); //reversing the string
// printing the length of the string
printf(" \n The length of the given string is %d", a);
// printing the reverse string
printf(" \n The string reverse is: %s", b);
return 0;
}
Output:
Enter the string: JavaTpoint
The length of the given string is 10
The string reverse is: tniopTavaJ
Example 7:
// program todisplay the current time with date and day
#include <stdio.h>
#include <time.h>
int main()
{
struct tm* a;
time_t b;
b = time(NULL);
a = localtime(&b);
printf("%s", asctime(a));
return 0;
}
Output :
Thu Jun 30 12:41:26 2022
User define function:-
The user in the Program. To reduce the complexity of the code, the user defines this function.
In c, there are four function prototypes
- With parameters and with return values.
Ex: int add (int a, int b); - With parameters and without return values.
Ex: void add (int a, int b); - Without parameters and with return values.
Ex: int add ( void); - Without parameters and without return values.
Ex: void add (void);
In c to implement functions, we have to follow these steps.
Step 1:- Function declaration.
Syntax to declare a function: return_datatype function_name( parameters);
The function should be declared globally. If we are not returning any value to the main function, take the return data type as void. If there is no requirement to pass any parameter to the function, keep the parameter section empty or void.
Step 2:- Function definition or function body.
This is the main part of the function. Here the actual code is written which is to be executed.
The syntax of function is:
Return_datatype function_name( parameters )
{
Statement 1;
Statement 2;
,,,
Statement n;
}
Step 3:- Function calling
We can call a function in two ways.
- Call by value.
- Call by reference.
We can call function from anywhere in the Program. While calling we should give the proper function name and proper parameters as declared in the function declaration.
Syntax: function name (parameters);
Example:-
#include<stdio.h>
int large(int a, int b); // function declaration
int main( )
{
int c, d;
printf(“ Enter the values of c, d”);
scanf(“%d %d”, &c,&d);
result= large(c, d); // function calling.
printf(“the largest number among %d and %d is=”, c, d, result);
return 0;
}
int large(int a, int b) // function body
{
If(a>b)
return a;
else
return b;
}
Output:-
Enter the values of c, d: 2, 3
The largest among 2 and 3 is= 3
Example program in different prototype styles
// program to find the sum of the array elements using user define function
#include<stdio.h>
#define max 100
// function declaration in with parameters and with return values function prototype style
int sum ( int a[max], int m);
// function declaration in with parameters and without return values function prototype style
void read (int n);
int b[max];
int main ()
{
int n,s=0;
printf(" Enter the size of the array: ");
scanf("%d", &n); // fixing the size of the array
read(n); // function calling
s = sum (b,n);// function calling
printf("\n The sum of the array elements is= %d",s);
return 0;
}
void read (int n) // function body
{
int i;
printf(" \nEnter the read array elements: ");
for( i=0; i<n; i++)
{
scanf(" %d", &b[i]);
}
}
int sum (int a[max], int m) // function body
{
int i, sum=0;
for( i=0; i<m; i++)
{
sum = sum+ b[i];
}
return sum;
}
Output:
Enter the size of the array: 5
Enter the read array elements: 12 3 4 5 6
The sum of the array elements is= 30
Example program
// program to find sum of individual digits and printing the reverse numbers using //user define function prototype style.
#include <stdio.h>
// function declaration in without parameters and without return values function prototype style
void sum(void);
// function declaration in without parameters and with return values function prototype style
int rev(void);
int n;
void sum (void) // function body
{
int s=0,r;
int m=n;
while(m>0)
{
r= m%10;
s= s+r;
m=m/10;
}
printf(" \nThe sum of individual digits of %d is= %d",n, s);
}
int rev(void) // function body
{
int r=0,re=0;
int m=n;
while(m>0)
{
r=m%10;
re=re*10+r;
m=m/10;
}
return re;
}
int main() {
int a;
printf("\n Enter the value of n: ");
scanf("%d", &n); // reading the n value
a=rev(); // function calling
sum(); // function calling
printf(" \nThe reverse of the given number is= %d", a);
return 0;
}
Output :
Enter the value of n: 155
The sum of individual digits of 155 is= 11
The reverse of the given number is= 551
Advantages of function in C:
- We can avoid rewriting of same code/logic in the same Program by writing the repeating logic in a function and calling the function when there is a need for that logic in the Program.
- We can call the c function from anywhere and any number of times in the same Program.
- We can easily analyse the large c program by dividing it into multiple functions.
- We can reuse the same logic number of times in the same Program.
- By implementing functions, we can increase the readability of the Program.
- By implementing functions, we can reduce the chances of error in the Program.
- We can modify the code easily if there are errors in the code.
- We can divide a large complex problem into small parts by implementing functions.
Disadvantages of functions in C:
- Memory consumption is more compared to normal code.
- It takes a little bit more time to compare to the normal code.
- It returns only a single value at a time.
- The coder should have known about the functions, their types and the declaration of a function.