SlideShare a Scribd company logo
1 of 56
MODULE 3 –
FUNCTIONS, ARRAYS
AND STRINGS
I YEAR CSE B
HITS
Dennis Ritchie
MODULE 3 - FUNCTIONS,
ARRAYS AND STRINGS(6L+6P)
Functions – Storage Class – Arrays – Strings and standard functions - Pre-processor Statements.
Practical Component :
(i) Program to compute Factorial, Fibonacci series and sum of n numbers using recursion
(ii) Program to compute sum and average of N Numbers stored in an array
(iii) Program to sort the given n numbers stored in an array
(iv) Program to search for the given element in an array
(v) Program to do word count
(vi) Program to insert a substring in a string
(vii) Program to concatenate and compare two strings
(viii) Program using pre-processor statements
CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 2
3.1ARRAYS
 Arrays are referred to as structured data types
 An array is defined as finite ordered collection of homogenous
data, stored in contiguous memory locations.
 finite means data range must be defined.
 ordered means data must be stored in continuous
memory addresses.
 homogenous means data must be of similar data type.
 Array: sequence of identical objects in memory
 int a[10]; means space for ten integers
CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 3
Filippo Brunelleschi, Ospdale degli Innocenti, Firenze, Italy, 1421
WHERE TO USE ARRAYS ?
 to store list of Employee or Student names,
 to store marks of students,
 or to store list of numbers or characters etc
CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 4
Sl.no Roll No Student Name
Marks
(30)
Attendance
(21)
1
18113071
VALLEPU ANIL 11 21
2
18113072
JESHWIN W 4 17
3
18113073
ALEXANDRE AKSHAY RAJAN FRANCIS 13 20
4
18113074
TUMATI ANIL KUMAR 24 21
5
18113075
SANJAY KAPILESH S 11 21
6
18113076
SHOAIB MOHAMMAD 7 20
7
18113077
SRI VISHWA B 12 20
8
18113078
SAURABH JAISWAL 9 21
9
18113079
NITHYA KRISHNA S 11 21
10
18113080
KONDAPALLE YUVARAJ 13 21
11
18113081
SAKETH V 20 21
12
18113082
PADUCHURI PRADEEPYA LAKSHMI 15 16
13
18113083
PAVITHARAN R 26 18
14
18113084
TANNA SAI SIDDHARTHA 25 20
15
18113085
BOLLA RAGHU RAM REDDY 8 18
16
18113086
S ARJUNPRASANTH 18 21
17
18113087
SADAM PRIYANKA 12 20
18
18113088
S JASVANT DEV SARAVANAN 30 17
19
18113089
TULABANDU AADITHYA KIRAN 24 20
B.TECH-COMPUTER SCIENCE AND ENGINEERING (IA-I)- SUMMATIVE ASSESSMENT -I TYPE:WRITTEN TEST CSA4101 PROBLEM SOLVING USING C
S.No Roll No. Name of the Students QA.1 QA.2 QA.3 QA.4 QA.5 QA.6 QB.1 QB.2 QB.3 Total
CO -
ATTAINMEN
T
BTL - ATTAINMENT
CO's 1 1 1 1 1 1 1 1 1 CO-1 BTL-1 BTL-2 BTL-3
BTL 1 2 2 1 1 2 3 2 1
Max Marks 2 2 2 2 2 2 6 6 6 30 30 % 12 % 10 % 6 %
1 1811307
1 VALLEPU ANIL
2 1 1 1 1 1 3 1 0 11 11 36.7 5 42 3 30 3 30
2 1811307
2 JESHWIN W
1 0 1 2 0 0 0 0 0 4 4 13.4 3 25 1 10 0 0
3 1811307
3
ALEXANDRE AKSHAY
RAJAN FRANCIS
2 0 2 1 2 0 0 6 0 13 13 43.4 5 42 8 80 0 0
4 1811307
4 TUMATI ANIL KUMAR
1 0 2 2 2 0 6 6 5 24 24 80 5 42 8 80 6 60
5 1811307
5 SANJAY KAPILESH S
2 0 2 0 2 2 0 0 3 11 11 36.7 4 33 2 20 0 0
6 1811307
6 SHOAIB MOHAMMAD
1 0 1 0 2 2 0 0 1 7 7 23.4 3 25 1 10 0 0
7 1811307
7 SRI VISHWA B
1 1 2 1 0 2 0 5 0 12 12 40 3 25 8 80 0 0
8 1811307
8 SAURABH JAISWAL
0 0 2 0 1 0 3 3 0 9 9 30 1 8.4 5 50 3 30
9 1811307
9
NITHYA KRISHNA S
KRISHNA S
0 0 2 2 2 0 3 2 0 11 11 36.7 4 33 4 40 3 30
10 1811308
0 KONDAPALLE YUVARAJ
2 1 2 0 1 2 2 3 0 13 13 43.4 4 33 6 60 2 20
11 1811308
1 SAKETH V
2 2 2 1 2 2 3 6 0 20 20 66.7 7 58 10 100 3 30
12 1811308
2
PADUCHURI
PRADEEPYA LAKSHMI
0 1 2 2 2 2 0 0 6 15 15 50 5 42 3 30 0 0
13 1811308
3 PAVITHARAN R
2 0 2 2 2 2 6 5 5 26 26 86.7 6 50 7 70 6 60
14 1811308
4 SAI SIDDHARTH T
2 0 2 2 2 2 6 3 6 25 25 83.4 6 50 5 50 6 60
15 1811308
5
BOLLA RAGHU RAM
REDDY
0 0 1 0 2 2 1 0 2 8 8 26.7 2 17 1 10 1 10
16 1811308
6 S ARJUNPRASANTH
1 0 2 0 2 2 2 3 6 18 18 60 3 25 5 50 2 20
3.1.1HOW TO USE ARRAYS ?
 Declaring an Array
 data-type variable-name[size];
 Example: char arr[10];
 Initialization of an Array
After an array is declared it must be
initialized. Otherwise, it will
contain garbage value(any random value).
An array can be initialized at either compile
time or at runtime.
CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 5
3.1.1HOW TO USE ARRAYS ?
Compile time Array initialization
Compile time initialization of array elements is same as ordinary
variable initialization.
CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 6
data-type array-name[size] = { list of values };
/* Here are a few examples */
int marks[4]={ 67, 87, 56, 77 }; // integer array initialization
float area[5]={ 23.4, 6.8, 5.5 }; // float array initialization
int marks[4]={ 67, 87, 56, 77, 59 }; // Compile time error
3.1.1HOW TO USE ARRAYS ?
Runtime Array initialization (with user specific value)
An array can also be initialized at runtime using scanf() function.
CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 7
#include<stdio.h>
void main()
{
int arr[4];
int i, j;
for(i = 0; i < 4; i++)
{
printf("Enter Student %d mark:” , i);
scanf("%d", &arr[i]); //Run time array initialization
}
for(j = 0; j < 4; j++)
{
printf("%dn", arr[j]);
}
}
3.1.2 TWO DIMENSIONAL
ARRAYS
C language supports multidimensional arrays also.
The simplest form of a multidimensional array is the two-
dimensional array. Both the row's and column's index begins
from 0.
Two-dimensional arrays are declared as follows,
CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 8
data-type array-name[row-size][column-size]
/* Example */
int a[3][4];
3.1.3 MULTIDIMENSIONAL
ARRAYS
Array declarations read right-to-left
int a[10][3][2];
“an array of ten arrays of three arrays of two ints”
In memory
CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 9
2 2
3
2 2 2
3
2 2 2
3
...
10
2
SeagramBuilding,Ludwig
MiesvanderRohe,1957
3.1.3 MULTIDIMENSIONAL
ARRAYS
CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 10
#include<stdio.h>
void main()
{
int arr[3][4];
int i, j, k;
printf("Enter array element: ");
for(i = 0; i < 3;i++)
{
for(j = 0; j < 4; j++)
{
scanf("%d", &arr[i][j]);
}
}
printf(“nEntered array element are: ");
for(i = 0; i < 3; i++)
{
printf(“n”);
for(j = 0; j < 4; j++)
{
printf(“%d, ", arr[i][j]);
}
}
}
Enter array element:
1,2,3,4,5,6,7,8,9,10,11,12
Entered array element are:
1, 2, 3, 4,
5, 6, 7, 8,
9,10 , 11, 12
COMPILING YOUR PROGRAM ON
UNIX
vi file_name.c // used to create & edit the program
(press Esc and Semicolon ) :wq // to save the file
cc file_name.c // used for compiling the program and create
a.out (default output file)
Example:: cc hello.c
./a.out // execution of program
cc file_name.c -o file_name // used for creating file_name.out
./file_name.out
CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 11
3.2 FUNCTIONS IN C
A function is a block of code that performs a particular task.
C functions can be classified into two categories,
1. Library (or Predefined) functions
2. User-defined functions
CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 12
3.2 FUNCTIONS IN C
Library functions are those functions which are already defined in
C library,
example printf(), scanf(), strcat() etc.
A User-defined functions, are those functions which are defined by
the user at the time of writing program.
These functions are made for code reusability and for saving
time and space.
CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 13
3.2 FUNCTIONS IN C
Benefits of Using Functions
 It provides modularity to your program's structure.
 It makes your code reusable. You just have to call the
function by its name to use it, wherever required.
 In case of large programs with thousands of code lines,
debugging and editing becomes easier if you use functions.
 It makes the program more readable and easy to
understand.
CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 14
3.2.1 FUNCTION DECLARATION
A function must also be declared before its used
General syntax for function declaration is,
 returntype (int, float, char, double) or void.
 function name - valid C identifier
 parameter list -type and no of arguments /when it is called
formal parameters
 terminating semicolon
CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 15
returntype functionName (type1 parameter1, type2 parameter2,...);
3.2.2 FUNCTION DEFINITION
SYNTAX
function header
function body
No semicolon(;) after the parenthesis in the function header
CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 16
returntype functionName(type1 parameter1, type2
parameter2,...)
{
// function body goes here
}
3.2.3 FUNCTION EXAMPLE
#include<stdio.h>
int multiply(int a, int b); // function declaration
int main()
{
int i, j, result;
printf("Please enter 2 numbers you want to multiply...");
scanf("%d%d", &i, &j);
result = multiply(i, j); // function call
printf("The result of muliplication is: %d", result);
return 0;
}
int multiply(int a, int b)
{
return (a*b); // function defintion, this can be done in one line
}
CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 17
3.2.3 FUNCTION EXAMPLE
#include<stdio.h>
int multiply(int a, int b); // function declaration
int main()
{
int i, j, result;
printf("Please enter 2 numbers you want to multiply...");
scanf("%d%d", &i, &j);
result = multiply(i, j); // function call
printf("The result of muliplication is: %d", result);
return 0;
}
int multiply(int a, int b)
{
return (a*b); // function defintion, this can be done in one line
}
CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 18
3.2.2 FUNCTION EXAMPLE -NCR
CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 19
int factorial(int a)
{
int fact=1;
while( a>=1)
{
fact=fact*a;
a=a-1;
}
return (fact);
}
#include<stdio.h>
int factorial(int a);
int main()
{
int n, r, result, n_fact, r_fact,n_r_fact;
clrscr();
printf("n Calculation of nCr value");
printf("n_____________________");
printf("n Please enter n and r values (note n>r) : ");
scanf("%d, %d", &n, &r);
n_fact=factorial(n);
n_r_fact=factorial(n-r);
r_fact=factorial(r);
result=((n_fact)/(n_r_fact* r_fact));
printf("nThe result of n_fact is: %d", n_fact);
printf("nThe result of n-r_fact is: %d", n_r_fact);
printf("nThe result of r_fact is: %d", r_fact);
printf("nThe result of nCr is: %d", result);
getch();
return 0;
}
3.2.4 PASSING ARGUMENTS TO
A FUNCTION
CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 20
 Arguments are the values specified during the function call, for which the
formal parameters are declared while defining the function.
3.2.4 PASSING ARGUMENTS TO
A FUNCTION
CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 21
3.2.5 RETURNING A VALUE
FROM FUNCTION
CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 22
A function may or may not return a result. But if it does, we must use
the return statement to output the result.
3.2.6 TYPE OF USER-DEFINED
FUNCTIONS IN C
CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 23
There can be 4 different types of user-defined functions, they are:
1. Function with no arguments and no return value
2. Function with no arguments and a return value
3. Function with arguments and no return value
4. Function with arguments and a return value
3.2.6 TYPE OF USER-DEFINED
FUNCTIONS IN C
CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 24
#include<stdio.h> // Function with no arguments and no return value
void greatNum(); // function declaration
int main()
{
greatNum(); // function call
return 0;
}
void greatNum() // function definition
{
int i, j;
printf("Enter 2 numbers that you want to compare...");
scanf("%d%d", &i, &j);
if(i > j) {
printf("The greater number is: %d", i);
}
else {
printf("The greater number is: %d", j);
}
}
3.2.6 TYPE OF USER-DEFINED
FUNCTIONS IN C
CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 25
#include<stdio.h> // Function with no arguments and a return value
int greatNum(); // function declaration
int main()
{
int result;
result = greatNum(); // function call
printf("The greater number is: %d", result);
return 0;
}
int greatNum() // function definition
{
int i, j, greaterNum;
printf("Enter 2 numbers that you want to compare...");
scanf("%d%d", &i, &j);
if(i > j) {
greaterNum = i;
}
else {
greaterNum = j;
}
// returning the result
return greaterNum;
}
3.2.6 TYPE OF USER-DEFINED
FUNCTIONS IN C
CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 26
#include<stdio.h> // Function with arguments and no return value
void greatNum(int a, int b); // function declaration
int main()
{
int i, j;
printf("Enter 2 numbers that you want to compare...");
scanf("%d%d", &i, &j);
greatNum(i, j); // function call
return 0;
}
void greatNum(int x, int y) // function definition
{
if(x > y) {
printf("The greater number is: %d", x);
}
else {
printf("The greater number is: %d", y);
}
}
3.2.7 NESTING OF FUNCTIONS
CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 27
 Call a function inside another function's body.
 We must be careful while using nested functions, because it may lead to
infinite nesting.
function1()
{
// function1 body here
function2();
// function1 body here
}
function2()
{
// function2 body here
function1();
// function2 body here
}
3.2.8 WHAT IS RECURSION?
CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 28
 Recursion is a special way of nesting functions, where a function calls
itself inside it.
 We must have certain conditions in the function to break out of the
recursion, otherwise recursion will occur infinite times.
function1()
{
// function1 body here
function1();
// function1 body here
}
3.2.8 RECURSION EXAMPLE
CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 29
#include<stdio.h> //Factorial of a number using Recursion
int factorial(int x); //declaring the function
void main()
{
int a, b;
printf("Enter a number...");
scanf("%d", &a);
b = factorial(a); //calling the function named factorial
printf("%d", b);
}
int factorial(int x) //defining the function
{
int r = 1;
if(x == 1)
return 1;
else
r = x*factorial(x-1); //recursion, since the function
calls itself
return r;
}
3.2.9 TYPES OF FUNCTION
CALLS IN C
CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 30
 Based on how we specify the arguments, we can call a
function in two different ways
 Call by Value
 Call by Reference
Calling a function by value means, we pass the values of the arguments
which are stored or copied into the formal parameters of the function.
Hence, the original values are unchanged only the parameters inside the
function changes.
In call by reference we pass the address(reference) of a variable as argument
to any function. When we pass the address of any variable as argument, then
the function will have access to our variable, as it now knows where it is
stored and hence can easily update its value.
3.2.9 TYPES OF FUNCTION
CALLS IN C
CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 31
#include<stdio.h> // Example for Call by value
void calc(int x);
int main()
{
int x = 10;
calc(x);
// this will print the value of 'x'
printf("nvalue of x in main is %d", x);
return 0;
}
void calc(int x)
{
// changing the value of 'x'
x = x + 10 ;
printf("value of x in calc function is %d ", x);
}
value of x in calc function is 20
value of x in main is 10
3.2.9 TYPES OF FUNCTION
CALLS IN C
CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 32
#include<stdio.h> // Example for Call by Refernce
void calc(int *p); // function taking pointer as argument
int main()
{
int x = 10;
calc(&x); // passing address of 'x' as argument
printf("value of x is %d", x);
return(0);
}
void calc(int *p) //receiving the address in a reference pointer
variable
{
// changing the value directly that is stored at the address passed
*p = *p + 10;
}
value of x is 20
3.2.9 TYPES OF FUNCTION
CALLS IN C
CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 33
# include<stdio.h> // Fibonacci Series with normal function
void fibo(int x);
void main()
{
int a;
clrscr();
printf("n Enter the size of Fibonacci Series: ");
scanf("%d", &a);
printf("The first %d terms of Fibonacci Series are:nn");
printf("%d ",1);
fibo(a);
}
void fibo(int x)
{
int i,first=0, second=1,sum;
for(i=1; i<x; i++)
{
sum=first+second;
first=second;
second=sum;
printf("%d ",sum);
}
getch();
}
3.2.9 TYPES OF FUNCTION
CALLS IN C
CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 34
# include<stdio.h> // Fibonacci Series using Recursion
void fibo(int x);
void main()
{
int a;
clrscr();
printf("n Enter the size of Fibonacci Series: ");
scanf("%d", &a);
printf("The first %d terms of Fibonacci Series are:nn");
printf("%d ",1);
fibo(a);
}
void fibo(int x)
{
static int first=0,
second=1,sum;
if(x>1)
{
sum=first+second;
first=second;
second=sum;
printf("%d ",sum);
fibo(x-1);
}
else
printf("nn");
getch();
}
Output:
4
CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS,
ARRAYS AND STRINGS
35
CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS,
ARRAYS AND STRINGS
36
Output:
a) fellowsa) fellows
b) h
c) fello
d) Compiler error
CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS,
ARRAYS AND STRINGS
37
a) n1=18, n2=17
b) n1=18, n2=18
c) n1=17, n1=17
d) n1=17, n2=18
Output:
a) n1=18,
n2=17
3.3 STRING AND CHARACTER
ARRAY
String is a sequence of characters that is treated as a single data
item and terminated by null character '0’.
Remember that C language does not support strings as a data
type.
A string is actually one-dimensional array of characters in C
language.
These are often used to create meaningful and readable
programs.
The string "hello world" contains 12 characters including '0'
character which is automatically added by the compiler at the
end of the string.
CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 38
3.3.1 DECLARING AND
INITIALIZING A STRING
VARIABLES
There are different ways to initialize a character array variable.
CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 39
char name[10] = “Hindustan"; // valid character array initialization
char name[10] = {‘H',’i',’n',’d',’u',’s',’t’, ’a,’n','0'}; // valid
initialization
 Remember that when you initialize a character array by listing all of
its characters separately then you must supply the '0' character
explicitly.Some examples of illegal initialization of character
array are,
char ch[3] = "hell"; // Illegal
char str[4];
str = "hell"; // Illegal
3.3.1 DECLARING AND
INITIALIZING A STRING
VARIABLES
Example
CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 40
include<stdio.h>
void main()
{
char str[20];
printf("Enter a string : ");
scanf("%[^n]", &str); //scanning the whole string, including the
white spaces
printf("%s", str);
}
Alternate way using gets()
function
char text[20];
gets(text);
printf("%s", text);
3.4 STRING HANDLING
FUNCTIONS
CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 41
 C language supports a large number of string handling functions that can be used to carry out many
of the string manipulations.
 These functions are packaged in string.h library.
 Need to include string.h header file in your programs to use these functions.
 The following are the most commonly used string handling functions.
Method Description
strcat(s1,s2) Concatenates the character string s2 to the end of s1, placing a
null character at the end of the final string. The function returns
s1.
strlen(s) Returns the number of characters in s, excluding the null
character.
strrev(s) It is used to show reverse of a string
strcpy(s1,s2) Copies the string s2 to s1, returning s1.
strcmp(s1,s2) Compares strings s1 and s2 and returns a value less than zero if
s1 is less than s2, equal to zero if s1 is equal to s2, and greater
than zero if s1 is greater than s2.
3.4 STRING HANDLING
FUNCTIONS
CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 42
Method Description
strncat (s1, s2, n) Copies s2 to the end of s1 until either the null character is reached
or n characters have been copied, whichever occurs first. Returns
s1.
strncmp (s1, s2, n) Performs the same function as strcmp, except that at most n
characters from the strings are compared.
strncpy (s1, s2, n) Copies s2 to s1 until either the null character is reached or n
characters have been copied, whichever occurs first. Returns s1.
strchr (s, c) Searches the string s for the first occurrence of the character c. If it
is found, a pointer to the character is returned; otherwise, a null
pointer is returned.
3.4 STRING HANDLING
FUNCTIONS
CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 43
#include<stdio.h>
#include<string.h>
int main()
{
char s1[50];
char s2[50];
int i, j, k;
clrscr();
printf("Enter First string: ");
gets(s1);
printf("Enter 2nd string: ");
gets(s2);
printf("nnnYour First String is : %s", s1);
printf("nYour 2nd String is : %s", s2);
printf("nYour First String after combined with 2nd is : %s",strcat(s1,s2) );
i=strlen(s1), j=strlen(s2);
k=strcmp(s1,s2);
printf("nnnYour First String Length is : %d", i);
printf("nYour 2nd String Length is : %d", j);
printf("nYour First and 2nd String comparison result:
%d", k);
strcpy(s1, "Welcome to CSE-B");
printf("nnnYour First String after copy is : %s", s1);
printf("nYour 2nd string reverse form is:
%s",strrev(s2));
getch();
return(0);
}
3.5 STORAGE CLASSES IN C
CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 44
 Scope i.e where the value of the variable would be available inside a program.
 Default initial value i.e if we do not explicitly initialize that variable, what will be its default
initial value.
 Lifetime of that variable i.e for how long will that variable exist.
Storage classes are
1. Automatic variables
2. External variables
3. Static variables
4. Register variables
3.5.1 AUTOMATIC VARIABLES:
AUTO
CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 45
 A variable declared inside a function without any storage class specification, is by
default an automatic variable.
 They are created when a function is called and are destroyed automatically when
the function's execution is completed.
 Automatic variables can also be called local variables because they are local to a
function.
Scope: Variable defined with auto storage class are local to the function block inside which
they are defined.
Default Initial Value: Any random value i.e garbage value.
Lifetime: Till the end of the function/method block where the variable is defined.
3.5.2 EXTERNAL OR GLOBAL
VARIABLE
CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 46
 A variable that is declared outside any function is a Global Variable.
 Global variables remain available throughout the program execution.
 By default, initial value of the Global variable is 0(zero).
 One important thing to remember about global variable is that their values can be
changed by any function in the program
 The extern keyword is used with a variable to inform the compiler that this variable
is declared somewhere else. The extern declaration does not allocate storage for
variables.
Scope: Global i.e everywhere in the program. These variables are not bound by any function,
they are available everywhere.
Default initial value: 0(zero).
Lifetime: Till the program doesn't finish its execution, you can access global variables.
3.5.3 STATIC VARIABLES
CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 47
 A static variable tells the compiler to persist/save the variable until the end of
program.
 Instead of creating and destroying a variable every time when it comes into and
goes out of scope, static variable is initialized only once and remains into existence
till the end of the program.
 A static variable can either be internal or external depending upon the place of
declaration.
 Scope of internal static variable remains inside the function in which it is defined.
External static variables remain restricted to scope of file in which they are
declared.
Scope: Local to the block in which the variable is defined
Default initial value: 0(Zero).
Lifetime: Till the whole program doesn't finish its execution.
3.5.3 STATIC VARIABLES
CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 48
Output:
1 2 3
#include<stdio.h>
void test(); //Function declaration
int main()
{
test();
test();
test();
}
void test()
{
static int a = 0; //a static variable
a = a + 1;
printf("%dt",a);
}
3.5.4 REGISTER VARIABLE
CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 49
Scope: Local to the function in which it is declared.
Default initial value: Any random value i.e garbage value
Lifetime: Till the end of function/method block, in which the variable is defined.
 Register variables inform the compiler to store the variable in CPU
register instead of memory.
 Register variables have faster accessibility than a normal variable.
Generally, the frequently used variables are kept in registers.
 But only a few variables can be placed inside registers.
 One application of register storage class can be in using loops,
where the variable gets used a number of times in the program, in a
very short span of time.
Syntax :
register int number;
3.5.5 WHICH STORAGE CLASS
SHOULD BE USED AND
WHEN
CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 50
 We should use static storage class only when we want the value of
the variable to remain same every time we call it using different
function calls.
 We should use register storage class only for those variables that
are used in our program very oftenly. CPU registers are limited and
thus should be used carefully.
 We should use external or global storage class only for those
variables that are being used by almost all the functions in the
program.
 If we do not have the purpose of any of the above mentioned
storage classes, then we should use the automatic storage class.
3.6 C PREPROCESSOR
CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 51
Topics to be covered
 Macros
 Preprocessor Directives
 Predefined Macros
 Preprocessor Operators
3.6 C PREPROCESSOR
CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 52
Topics to be covered
 Preprocessor Directives
 Macros
 Predefined Macros
 Preprocessor Operators
3.6.1 PREPROCESSOR
DIRECTIVES
CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 53
 C Preprocessor is just a text substitution tool and it instructs the
compiler to do required pre-processing before the actual
compilation.
 All preprocessor commands begin with a hash symbol (#).
Sr.No. Directive & Description
1 #define Substitutes a preprocessor macro.
2 #include Inserts a particular header from another file.
3 #undef Undefines a preprocessor macro.
4 #ifdef Returns true if this macro is defined.
5 #ifndef Returns true if this macro is not defined.
6 #if Tests if a compile time condition is true.
7 #else The alternative for #if.
8 #elif #else and #if in one statement.
9 #endif Ends preprocessor conditional.
10 #error Prints error message on stderr.
3.6.2 PREDEFINED MACROS
CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 54
 A macro is a name given to a block of C statements as a pre-
processor directive.
 Being a pre-processor, the block of code is communicated to the
compiler before entering into the actual coding (main () function).
 A macro is defined with the preprocessor directive, #define.
Sr.No. Macro & Description
1 __DATE__
The current date as a character literal in "MMM DD
YYYY" format.
2 __TIME__
The current time as a character literal in "HH:MM:SS"
format.
3 __FILE__
This contains the current filename as a string literal.
4 __LINE__
This contains the current line number as a decimal
constant.
5 __STDC__
Defined as 1 when the compiler complies with the ANSI
standard.
3.6.2 PREDEFINED MACROS
CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 55
#include <stdio.h> // File name preprocessor.c
int main()
{
printf("File :%sn", __FILE__ );
printf("Date :%sn", __DATE__ );
printf("Time :%sn", __TIME__ );
printf("Line :%dn", __LINE__ );
printf("ANSI :%dn", __STDC__ );
}
File : preprocessor.c
Date :Oct 12 2018
Time :09:36:24
Line :7
ANSI :1
3.6.3 PREPROCESSOR
OPERATORS
CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 56
The Macro Continuation () Operator
 A macro is normally confined to a single line. The macro continuation
operator () is used to continue a macro that is too long for a single line.
The Stringize (#) Operator
 The stringize or number-sign operator ( '#' ), when used within a macro
definition, converts a macro parameter into a string constant
#include <stdio.h>
#define message_for(a, b) 
printf(#a " and " #b ": We love you!n")
int main(void) {
message_for(Raj, Sekar);
return 0;
}

More Related Content

What's hot

MERGE SQL Statement: Lesser Known Facets
MERGE SQL Statement: Lesser Known FacetsMERGE SQL Statement: Lesser Known Facets
MERGE SQL Statement: Lesser Known FacetsAndrej Pashchenko
 
Stack data structure
Stack data structureStack data structure
Stack data structureSoumyajit Pal
 
System software
System softwareSystem software
System softwareMobiless
 
Scilab for real dummies j.heikell - part3
Scilab for real dummies j.heikell - part3Scilab for real dummies j.heikell - part3
Scilab for real dummies j.heikell - part3Scilab
 
SQL for pattern matching (Oracle 12c)
SQL for pattern matching (Oracle 12c)SQL for pattern matching (Oracle 12c)
SQL for pattern matching (Oracle 12c)Logan Palanisamy
 
Scilab for real dummies j.heikell - part 2
Scilab for real dummies j.heikell - part 2Scilab for real dummies j.heikell - part 2
Scilab for real dummies j.heikell - part 2Scilab
 

What's hot (20)

Les03 Single Row Function
Les03 Single Row FunctionLes03 Single Row Function
Les03 Single Row Function
 
1st and 2nd Semester M Tech: Computer Science and Engineering (Dec-2015; Jan-...
1st and 2nd Semester M Tech: Computer Science and Engineering (Dec-2015; Jan-...1st and 2nd Semester M Tech: Computer Science and Engineering (Dec-2015; Jan-...
1st and 2nd Semester M Tech: Computer Science and Engineering (Dec-2015; Jan-...
 
MERGE SQL Statement: Lesser Known Facets
MERGE SQL Statement: Lesser Known FacetsMERGE SQL Statement: Lesser Known Facets
MERGE SQL Statement: Lesser Known Facets
 
Stack data structure
Stack data structureStack data structure
Stack data structure
 
Les12
Les12Les12
Les12
 
Les05 Aggregating Data Using Group Function
Les05 Aggregating Data Using Group FunctionLes05 Aggregating Data Using Group Function
Les05 Aggregating Data Using Group Function
 
Les01
Les01Les01
Les01
 
ORACLE NOTES
ORACLE NOTESORACLE NOTES
ORACLE NOTES
 
Les02 Restricting And Sorting Data
Les02 Restricting And Sorting DataLes02 Restricting And Sorting Data
Les02 Restricting And Sorting Data
 
System software
System softwareSystem software
System software
 
Scilab for real dummies j.heikell - part3
Scilab for real dummies j.heikell - part3Scilab for real dummies j.heikell - part3
Scilab for real dummies j.heikell - part3
 
8th Semester (December; January-2014 and 2015) Computer Science and Informati...
8th Semester (December; January-2014 and 2015) Computer Science and Informati...8th Semester (December; January-2014 and 2015) Computer Science and Informati...
8th Semester (December; January-2014 and 2015) Computer Science and Informati...
 
Les03
Les03Les03
Les03
 
SQL for pattern matching (Oracle 12c)
SQL for pattern matching (Oracle 12c)SQL for pattern matching (Oracle 12c)
SQL for pattern matching (Oracle 12c)
 
Les06 Subqueries
Les06 SubqueriesLes06 Subqueries
Les06 Subqueries
 
Les12 creating views
Les12 creating viewsLes12 creating views
Les12 creating views
 
Scilab for real dummies j.heikell - part 2
Scilab for real dummies j.heikell - part 2Scilab for real dummies j.heikell - part 2
Scilab for real dummies j.heikell - part 2
 
Stack and queue
Stack and queueStack and queue
Stack and queue
 
Matlab commands
Matlab commandsMatlab commands
Matlab commands
 
Java file
Java fileJava file
Java file
 

Similar to Cp unit 3

Ds lab manual by s.k.rath
Ds lab manual by s.k.rathDs lab manual by s.k.rath
Ds lab manual by s.k.rathSANTOSH RATH
 
SQL Optimization With Trace Data And Dbms Xplan V6
SQL Optimization With Trace Data And Dbms Xplan V6SQL Optimization With Trace Data And Dbms Xplan V6
SQL Optimization With Trace Data And Dbms Xplan V6Mahesh Vallampati
 
Chapter 16-spreadsheet1 questions and answer
Chapter 16-spreadsheet1  questions and answerChapter 16-spreadsheet1  questions and answer
Chapter 16-spreadsheet1 questions and answerRaajTech
 
C and Data structure lab manual ECE (2).pdf
C and Data structure lab manual ECE (2).pdfC and Data structure lab manual ECE (2).pdf
C and Data structure lab manual ECE (2).pdfjanakim15
 
Basic of octave matlab programming language
Basic of octave matlab programming languageBasic of octave matlab programming language
Basic of octave matlab programming languageAulia Khalqillah
 
Be cps-18 cps13or23-module1
Be cps-18 cps13or23-module1Be cps-18 cps13or23-module1
Be cps-18 cps13or23-module1kavya R
 
Engineering C-programing module1 ppt (18CPS13/23)
Engineering C-programing module1 ppt (18CPS13/23)Engineering C-programing module1 ppt (18CPS13/23)
Engineering C-programing module1 ppt (18CPS13/23)kavya R
 
Lecture 9_Classes.pptx
Lecture 9_Classes.pptxLecture 9_Classes.pptx
Lecture 9_Classes.pptxNelyJay
 
Scilab presentation
Scilab presentation Scilab presentation
Scilab presentation Nasir Ansari
 
Top 10 Oracle SQL tuning tips
Top 10 Oracle SQL tuning tipsTop 10 Oracle SQL tuning tips
Top 10 Oracle SQL tuning tipsNirav Shah
 
Introduction to Data Science With R Lab Record
Introduction to Data Science With R Lab RecordIntroduction to Data Science With R Lab Record
Introduction to Data Science With R Lab RecordLakshmi Sarvani Videla
 

Similar to Cp unit 3 (20)

Ds lab manual by s.k.rath
Ds lab manual by s.k.rathDs lab manual by s.k.rath
Ds lab manual by s.k.rath
 
SQL Optimization With Trace Data And Dbms Xplan V6
SQL Optimization With Trace Data And Dbms Xplan V6SQL Optimization With Trace Data And Dbms Xplan V6
SQL Optimization With Trace Data And Dbms Xplan V6
 
Java Lab Manual
Java Lab ManualJava Lab Manual
Java Lab Manual
 
JavaProgrammingManual
JavaProgrammingManualJavaProgrammingManual
JavaProgrammingManual
 
Chapter 16-spreadsheet1 questions and answer
Chapter 16-spreadsheet1  questions and answerChapter 16-spreadsheet1  questions and answer
Chapter 16-spreadsheet1 questions and answer
 
Lesson 6 recursion
Lesson 6  recursionLesson 6  recursion
Lesson 6 recursion
 
C and Data structure lab manual ECE (2).pdf
C and Data structure lab manual ECE (2).pdfC and Data structure lab manual ECE (2).pdf
C and Data structure lab manual ECE (2).pdf
 
Unit 3
Unit 3 Unit 3
Unit 3
 
Chapter 6 arrays part-1
Chapter 6   arrays part-1Chapter 6   arrays part-1
Chapter 6 arrays part-1
 
CP Handout#9
CP Handout#9CP Handout#9
CP Handout#9
 
Arrays basics
Arrays basicsArrays basics
Arrays basics
 
Basic of octave matlab programming language
Basic of octave matlab programming languageBasic of octave matlab programming language
Basic of octave matlab programming language
 
Be cps-18 cps13or23-module1
Be cps-18 cps13or23-module1Be cps-18 cps13or23-module1
Be cps-18 cps13or23-module1
 
Engineering C-programing module1 ppt (18CPS13/23)
Engineering C-programing module1 ppt (18CPS13/23)Engineering C-programing module1 ppt (18CPS13/23)
Engineering C-programing module1 ppt (18CPS13/23)
 
arrays
arraysarrays
arrays
 
Lecture 9_Classes.pptx
Lecture 9_Classes.pptxLecture 9_Classes.pptx
Lecture 9_Classes.pptx
 
Arrays in C language
Arrays in C languageArrays in C language
Arrays in C language
 
Scilab presentation
Scilab presentation Scilab presentation
Scilab presentation
 
Top 10 Oracle SQL tuning tips
Top 10 Oracle SQL tuning tipsTop 10 Oracle SQL tuning tips
Top 10 Oracle SQL tuning tips
 
Introduction to Data Science With R Lab Record
Introduction to Data Science With R Lab RecordIntroduction to Data Science With R Lab Record
Introduction to Data Science With R Lab Record
 

Recently uploaded

Coefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxCoefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxAsutosh Ranjan
 
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCall Girls in Nagpur High Profile
 
IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024Mark Billinghurst
 
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escortsranjana rawat
 
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxJoão Esperancinha
 
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130Suhani Kapoor
 
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerStudy on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerAnamika Sarkar
 
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Dr.Costas Sachpazis
 
Current Transformer Drawing and GTP for MSETCL
Current Transformer Drawing and GTP for MSETCLCurrent Transformer Drawing and GTP for MSETCL
Current Transformer Drawing and GTP for MSETCLDeelipZope
 
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Serviceranjana rawat
 
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...RajaP95
 
Introduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxIntroduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxupamatechverse
 
Microscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxMicroscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxpurnimasatapathy1234
 
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSMANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSSIVASHANKAR N
 
Call Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile serviceCall Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile servicerehmti665
 
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
Analog to Digital and Digital to Analog Converter
Analog to Digital and Digital to Analog ConverterAnalog to Digital and Digital to Analog Converter
Analog to Digital and Digital to Analog ConverterAbhinavSharma374939
 
Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024hassan khalil
 

Recently uploaded (20)

Coefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxCoefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptx
 
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
 
IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024
 
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
 
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
 
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
 
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerStudy on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
 
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
 
Current Transformer Drawing and GTP for MSETCL
Current Transformer Drawing and GTP for MSETCLCurrent Transformer Drawing and GTP for MSETCL
Current Transformer Drawing and GTP for MSETCL
 
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
 
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...
 
Introduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxIntroduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptx
 
Microscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxMicroscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptx
 
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSMANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
 
Call Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile serviceCall Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile service
 
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
 
Analog to Digital and Digital to Analog Converter
Analog to Digital and Digital to Analog ConverterAnalog to Digital and Digital to Analog Converter
Analog to Digital and Digital to Analog Converter
 
Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024
 
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCRCall Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
 

Cp unit 3

  • 1. MODULE 3 – FUNCTIONS, ARRAYS AND STRINGS I YEAR CSE B HITS Dennis Ritchie
  • 2. MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS(6L+6P) Functions – Storage Class – Arrays – Strings and standard functions - Pre-processor Statements. Practical Component : (i) Program to compute Factorial, Fibonacci series and sum of n numbers using recursion (ii) Program to compute sum and average of N Numbers stored in an array (iii) Program to sort the given n numbers stored in an array (iv) Program to search for the given element in an array (v) Program to do word count (vi) Program to insert a substring in a string (vii) Program to concatenate and compare two strings (viii) Program using pre-processor statements CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 2
  • 3. 3.1ARRAYS  Arrays are referred to as structured data types  An array is defined as finite ordered collection of homogenous data, stored in contiguous memory locations.  finite means data range must be defined.  ordered means data must be stored in continuous memory addresses.  homogenous means data must be of similar data type.  Array: sequence of identical objects in memory  int a[10]; means space for ten integers CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 3 Filippo Brunelleschi, Ospdale degli Innocenti, Firenze, Italy, 1421
  • 4. WHERE TO USE ARRAYS ?  to store list of Employee or Student names,  to store marks of students,  or to store list of numbers or characters etc CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 4 Sl.no Roll No Student Name Marks (30) Attendance (21) 1 18113071 VALLEPU ANIL 11 21 2 18113072 JESHWIN W 4 17 3 18113073 ALEXANDRE AKSHAY RAJAN FRANCIS 13 20 4 18113074 TUMATI ANIL KUMAR 24 21 5 18113075 SANJAY KAPILESH S 11 21 6 18113076 SHOAIB MOHAMMAD 7 20 7 18113077 SRI VISHWA B 12 20 8 18113078 SAURABH JAISWAL 9 21 9 18113079 NITHYA KRISHNA S 11 21 10 18113080 KONDAPALLE YUVARAJ 13 21 11 18113081 SAKETH V 20 21 12 18113082 PADUCHURI PRADEEPYA LAKSHMI 15 16 13 18113083 PAVITHARAN R 26 18 14 18113084 TANNA SAI SIDDHARTHA 25 20 15 18113085 BOLLA RAGHU RAM REDDY 8 18 16 18113086 S ARJUNPRASANTH 18 21 17 18113087 SADAM PRIYANKA 12 20 18 18113088 S JASVANT DEV SARAVANAN 30 17 19 18113089 TULABANDU AADITHYA KIRAN 24 20 B.TECH-COMPUTER SCIENCE AND ENGINEERING (IA-I)- SUMMATIVE ASSESSMENT -I TYPE:WRITTEN TEST CSA4101 PROBLEM SOLVING USING C S.No Roll No. Name of the Students QA.1 QA.2 QA.3 QA.4 QA.5 QA.6 QB.1 QB.2 QB.3 Total CO - ATTAINMEN T BTL - ATTAINMENT CO's 1 1 1 1 1 1 1 1 1 CO-1 BTL-1 BTL-2 BTL-3 BTL 1 2 2 1 1 2 3 2 1 Max Marks 2 2 2 2 2 2 6 6 6 30 30 % 12 % 10 % 6 % 1 1811307 1 VALLEPU ANIL 2 1 1 1 1 1 3 1 0 11 11 36.7 5 42 3 30 3 30 2 1811307 2 JESHWIN W 1 0 1 2 0 0 0 0 0 4 4 13.4 3 25 1 10 0 0 3 1811307 3 ALEXANDRE AKSHAY RAJAN FRANCIS 2 0 2 1 2 0 0 6 0 13 13 43.4 5 42 8 80 0 0 4 1811307 4 TUMATI ANIL KUMAR 1 0 2 2 2 0 6 6 5 24 24 80 5 42 8 80 6 60 5 1811307 5 SANJAY KAPILESH S 2 0 2 0 2 2 0 0 3 11 11 36.7 4 33 2 20 0 0 6 1811307 6 SHOAIB MOHAMMAD 1 0 1 0 2 2 0 0 1 7 7 23.4 3 25 1 10 0 0 7 1811307 7 SRI VISHWA B 1 1 2 1 0 2 0 5 0 12 12 40 3 25 8 80 0 0 8 1811307 8 SAURABH JAISWAL 0 0 2 0 1 0 3 3 0 9 9 30 1 8.4 5 50 3 30 9 1811307 9 NITHYA KRISHNA S KRISHNA S 0 0 2 2 2 0 3 2 0 11 11 36.7 4 33 4 40 3 30 10 1811308 0 KONDAPALLE YUVARAJ 2 1 2 0 1 2 2 3 0 13 13 43.4 4 33 6 60 2 20 11 1811308 1 SAKETH V 2 2 2 1 2 2 3 6 0 20 20 66.7 7 58 10 100 3 30 12 1811308 2 PADUCHURI PRADEEPYA LAKSHMI 0 1 2 2 2 2 0 0 6 15 15 50 5 42 3 30 0 0 13 1811308 3 PAVITHARAN R 2 0 2 2 2 2 6 5 5 26 26 86.7 6 50 7 70 6 60 14 1811308 4 SAI SIDDHARTH T 2 0 2 2 2 2 6 3 6 25 25 83.4 6 50 5 50 6 60 15 1811308 5 BOLLA RAGHU RAM REDDY 0 0 1 0 2 2 1 0 2 8 8 26.7 2 17 1 10 1 10 16 1811308 6 S ARJUNPRASANTH 1 0 2 0 2 2 2 3 6 18 18 60 3 25 5 50 2 20
  • 5. 3.1.1HOW TO USE ARRAYS ?  Declaring an Array  data-type variable-name[size];  Example: char arr[10];  Initialization of an Array After an array is declared it must be initialized. Otherwise, it will contain garbage value(any random value). An array can be initialized at either compile time or at runtime. CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 5
  • 6. 3.1.1HOW TO USE ARRAYS ? Compile time Array initialization Compile time initialization of array elements is same as ordinary variable initialization. CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 6 data-type array-name[size] = { list of values }; /* Here are a few examples */ int marks[4]={ 67, 87, 56, 77 }; // integer array initialization float area[5]={ 23.4, 6.8, 5.5 }; // float array initialization int marks[4]={ 67, 87, 56, 77, 59 }; // Compile time error
  • 7. 3.1.1HOW TO USE ARRAYS ? Runtime Array initialization (with user specific value) An array can also be initialized at runtime using scanf() function. CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 7 #include<stdio.h> void main() { int arr[4]; int i, j; for(i = 0; i < 4; i++) { printf("Enter Student %d mark:” , i); scanf("%d", &arr[i]); //Run time array initialization } for(j = 0; j < 4; j++) { printf("%dn", arr[j]); } }
  • 8. 3.1.2 TWO DIMENSIONAL ARRAYS C language supports multidimensional arrays also. The simplest form of a multidimensional array is the two- dimensional array. Both the row's and column's index begins from 0. Two-dimensional arrays are declared as follows, CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 8 data-type array-name[row-size][column-size] /* Example */ int a[3][4];
  • 9. 3.1.3 MULTIDIMENSIONAL ARRAYS Array declarations read right-to-left int a[10][3][2]; “an array of ten arrays of three arrays of two ints” In memory CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 9 2 2 3 2 2 2 3 2 2 2 3 ... 10 2 SeagramBuilding,Ludwig MiesvanderRohe,1957
  • 10. 3.1.3 MULTIDIMENSIONAL ARRAYS CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 10 #include<stdio.h> void main() { int arr[3][4]; int i, j, k; printf("Enter array element: "); for(i = 0; i < 3;i++) { for(j = 0; j < 4; j++) { scanf("%d", &arr[i][j]); } } printf(“nEntered array element are: "); for(i = 0; i < 3; i++) { printf(“n”); for(j = 0; j < 4; j++) { printf(“%d, ", arr[i][j]); } } } Enter array element: 1,2,3,4,5,6,7,8,9,10,11,12 Entered array element are: 1, 2, 3, 4, 5, 6, 7, 8, 9,10 , 11, 12
  • 11. COMPILING YOUR PROGRAM ON UNIX vi file_name.c // used to create & edit the program (press Esc and Semicolon ) :wq // to save the file cc file_name.c // used for compiling the program and create a.out (default output file) Example:: cc hello.c ./a.out // execution of program cc file_name.c -o file_name // used for creating file_name.out ./file_name.out CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 11
  • 12. 3.2 FUNCTIONS IN C A function is a block of code that performs a particular task. C functions can be classified into two categories, 1. Library (or Predefined) functions 2. User-defined functions CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 12
  • 13. 3.2 FUNCTIONS IN C Library functions are those functions which are already defined in C library, example printf(), scanf(), strcat() etc. A User-defined functions, are those functions which are defined by the user at the time of writing program. These functions are made for code reusability and for saving time and space. CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 13
  • 14. 3.2 FUNCTIONS IN C Benefits of Using Functions  It provides modularity to your program's structure.  It makes your code reusable. You just have to call the function by its name to use it, wherever required.  In case of large programs with thousands of code lines, debugging and editing becomes easier if you use functions.  It makes the program more readable and easy to understand. CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 14
  • 15. 3.2.1 FUNCTION DECLARATION A function must also be declared before its used General syntax for function declaration is,  returntype (int, float, char, double) or void.  function name - valid C identifier  parameter list -type and no of arguments /when it is called formal parameters  terminating semicolon CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 15 returntype functionName (type1 parameter1, type2 parameter2,...);
  • 16. 3.2.2 FUNCTION DEFINITION SYNTAX function header function body No semicolon(;) after the parenthesis in the function header CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 16 returntype functionName(type1 parameter1, type2 parameter2,...) { // function body goes here }
  • 17. 3.2.3 FUNCTION EXAMPLE #include<stdio.h> int multiply(int a, int b); // function declaration int main() { int i, j, result; printf("Please enter 2 numbers you want to multiply..."); scanf("%d%d", &i, &j); result = multiply(i, j); // function call printf("The result of muliplication is: %d", result); return 0; } int multiply(int a, int b) { return (a*b); // function defintion, this can be done in one line } CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 17
  • 18. 3.2.3 FUNCTION EXAMPLE #include<stdio.h> int multiply(int a, int b); // function declaration int main() { int i, j, result; printf("Please enter 2 numbers you want to multiply..."); scanf("%d%d", &i, &j); result = multiply(i, j); // function call printf("The result of muliplication is: %d", result); return 0; } int multiply(int a, int b) { return (a*b); // function defintion, this can be done in one line } CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 18
  • 19. 3.2.2 FUNCTION EXAMPLE -NCR CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 19 int factorial(int a) { int fact=1; while( a>=1) { fact=fact*a; a=a-1; } return (fact); } #include<stdio.h> int factorial(int a); int main() { int n, r, result, n_fact, r_fact,n_r_fact; clrscr(); printf("n Calculation of nCr value"); printf("n_____________________"); printf("n Please enter n and r values (note n>r) : "); scanf("%d, %d", &n, &r); n_fact=factorial(n); n_r_fact=factorial(n-r); r_fact=factorial(r); result=((n_fact)/(n_r_fact* r_fact)); printf("nThe result of n_fact is: %d", n_fact); printf("nThe result of n-r_fact is: %d", n_r_fact); printf("nThe result of r_fact is: %d", r_fact); printf("nThe result of nCr is: %d", result); getch(); return 0; }
  • 20. 3.2.4 PASSING ARGUMENTS TO A FUNCTION CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 20  Arguments are the values specified during the function call, for which the formal parameters are declared while defining the function.
  • 21. 3.2.4 PASSING ARGUMENTS TO A FUNCTION CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 21
  • 22. 3.2.5 RETURNING A VALUE FROM FUNCTION CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 22 A function may or may not return a result. But if it does, we must use the return statement to output the result.
  • 23. 3.2.6 TYPE OF USER-DEFINED FUNCTIONS IN C CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 23 There can be 4 different types of user-defined functions, they are: 1. Function with no arguments and no return value 2. Function with no arguments and a return value 3. Function with arguments and no return value 4. Function with arguments and a return value
  • 24. 3.2.6 TYPE OF USER-DEFINED FUNCTIONS IN C CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 24 #include<stdio.h> // Function with no arguments and no return value void greatNum(); // function declaration int main() { greatNum(); // function call return 0; } void greatNum() // function definition { int i, j; printf("Enter 2 numbers that you want to compare..."); scanf("%d%d", &i, &j); if(i > j) { printf("The greater number is: %d", i); } else { printf("The greater number is: %d", j); } }
  • 25. 3.2.6 TYPE OF USER-DEFINED FUNCTIONS IN C CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 25 #include<stdio.h> // Function with no arguments and a return value int greatNum(); // function declaration int main() { int result; result = greatNum(); // function call printf("The greater number is: %d", result); return 0; } int greatNum() // function definition { int i, j, greaterNum; printf("Enter 2 numbers that you want to compare..."); scanf("%d%d", &i, &j); if(i > j) { greaterNum = i; } else { greaterNum = j; } // returning the result return greaterNum; }
  • 26. 3.2.6 TYPE OF USER-DEFINED FUNCTIONS IN C CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 26 #include<stdio.h> // Function with arguments and no return value void greatNum(int a, int b); // function declaration int main() { int i, j; printf("Enter 2 numbers that you want to compare..."); scanf("%d%d", &i, &j); greatNum(i, j); // function call return 0; } void greatNum(int x, int y) // function definition { if(x > y) { printf("The greater number is: %d", x); } else { printf("The greater number is: %d", y); } }
  • 27. 3.2.7 NESTING OF FUNCTIONS CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 27  Call a function inside another function's body.  We must be careful while using nested functions, because it may lead to infinite nesting. function1() { // function1 body here function2(); // function1 body here } function2() { // function2 body here function1(); // function2 body here }
  • 28. 3.2.8 WHAT IS RECURSION? CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 28  Recursion is a special way of nesting functions, where a function calls itself inside it.  We must have certain conditions in the function to break out of the recursion, otherwise recursion will occur infinite times. function1() { // function1 body here function1(); // function1 body here }
  • 29. 3.2.8 RECURSION EXAMPLE CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 29 #include<stdio.h> //Factorial of a number using Recursion int factorial(int x); //declaring the function void main() { int a, b; printf("Enter a number..."); scanf("%d", &a); b = factorial(a); //calling the function named factorial printf("%d", b); } int factorial(int x) //defining the function { int r = 1; if(x == 1) return 1; else r = x*factorial(x-1); //recursion, since the function calls itself return r; }
  • 30. 3.2.9 TYPES OF FUNCTION CALLS IN C CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 30  Based on how we specify the arguments, we can call a function in two different ways  Call by Value  Call by Reference Calling a function by value means, we pass the values of the arguments which are stored or copied into the formal parameters of the function. Hence, the original values are unchanged only the parameters inside the function changes. In call by reference we pass the address(reference) of a variable as argument to any function. When we pass the address of any variable as argument, then the function will have access to our variable, as it now knows where it is stored and hence can easily update its value.
  • 31. 3.2.9 TYPES OF FUNCTION CALLS IN C CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 31 #include<stdio.h> // Example for Call by value void calc(int x); int main() { int x = 10; calc(x); // this will print the value of 'x' printf("nvalue of x in main is %d", x); return 0; } void calc(int x) { // changing the value of 'x' x = x + 10 ; printf("value of x in calc function is %d ", x); } value of x in calc function is 20 value of x in main is 10
  • 32. 3.2.9 TYPES OF FUNCTION CALLS IN C CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 32 #include<stdio.h> // Example for Call by Refernce void calc(int *p); // function taking pointer as argument int main() { int x = 10; calc(&x); // passing address of 'x' as argument printf("value of x is %d", x); return(0); } void calc(int *p) //receiving the address in a reference pointer variable { // changing the value directly that is stored at the address passed *p = *p + 10; } value of x is 20
  • 33. 3.2.9 TYPES OF FUNCTION CALLS IN C CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 33 # include<stdio.h> // Fibonacci Series with normal function void fibo(int x); void main() { int a; clrscr(); printf("n Enter the size of Fibonacci Series: "); scanf("%d", &a); printf("The first %d terms of Fibonacci Series are:nn"); printf("%d ",1); fibo(a); } void fibo(int x) { int i,first=0, second=1,sum; for(i=1; i<x; i++) { sum=first+second; first=second; second=sum; printf("%d ",sum); } getch(); }
  • 34. 3.2.9 TYPES OF FUNCTION CALLS IN C CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 34 # include<stdio.h> // Fibonacci Series using Recursion void fibo(int x); void main() { int a; clrscr(); printf("n Enter the size of Fibonacci Series: "); scanf("%d", &a); printf("The first %d terms of Fibonacci Series are:nn"); printf("%d ",1); fibo(a); } void fibo(int x) { static int first=0, second=1,sum; if(x>1) { sum=first+second; first=second; second=sum; printf("%d ",sum); fibo(x-1); } else printf("nn"); getch(); }
  • 35. Output: 4 CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 35
  • 36. CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 36 Output: a) fellowsa) fellows b) h c) fello d) Compiler error
  • 37. CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 37 a) n1=18, n2=17 b) n1=18, n2=18 c) n1=17, n1=17 d) n1=17, n2=18 Output: a) n1=18, n2=17
  • 38. 3.3 STRING AND CHARACTER ARRAY String is a sequence of characters that is treated as a single data item and terminated by null character '0’. Remember that C language does not support strings as a data type. A string is actually one-dimensional array of characters in C language. These are often used to create meaningful and readable programs. The string "hello world" contains 12 characters including '0' character which is automatically added by the compiler at the end of the string. CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 38
  • 39. 3.3.1 DECLARING AND INITIALIZING A STRING VARIABLES There are different ways to initialize a character array variable. CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 39 char name[10] = “Hindustan"; // valid character array initialization char name[10] = {‘H',’i',’n',’d',’u',’s',’t’, ’a,’n','0'}; // valid initialization  Remember that when you initialize a character array by listing all of its characters separately then you must supply the '0' character explicitly.Some examples of illegal initialization of character array are, char ch[3] = "hell"; // Illegal char str[4]; str = "hell"; // Illegal
  • 40. 3.3.1 DECLARING AND INITIALIZING A STRING VARIABLES Example CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 40 include<stdio.h> void main() { char str[20]; printf("Enter a string : "); scanf("%[^n]", &str); //scanning the whole string, including the white spaces printf("%s", str); } Alternate way using gets() function char text[20]; gets(text); printf("%s", text);
  • 41. 3.4 STRING HANDLING FUNCTIONS CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 41  C language supports a large number of string handling functions that can be used to carry out many of the string manipulations.  These functions are packaged in string.h library.  Need to include string.h header file in your programs to use these functions.  The following are the most commonly used string handling functions. Method Description strcat(s1,s2) Concatenates the character string s2 to the end of s1, placing a null character at the end of the final string. The function returns s1. strlen(s) Returns the number of characters in s, excluding the null character. strrev(s) It is used to show reverse of a string strcpy(s1,s2) Copies the string s2 to s1, returning s1. strcmp(s1,s2) Compares strings s1 and s2 and returns a value less than zero if s1 is less than s2, equal to zero if s1 is equal to s2, and greater than zero if s1 is greater than s2.
  • 42. 3.4 STRING HANDLING FUNCTIONS CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 42 Method Description strncat (s1, s2, n) Copies s2 to the end of s1 until either the null character is reached or n characters have been copied, whichever occurs first. Returns s1. strncmp (s1, s2, n) Performs the same function as strcmp, except that at most n characters from the strings are compared. strncpy (s1, s2, n) Copies s2 to s1 until either the null character is reached or n characters have been copied, whichever occurs first. Returns s1. strchr (s, c) Searches the string s for the first occurrence of the character c. If it is found, a pointer to the character is returned; otherwise, a null pointer is returned.
  • 43. 3.4 STRING HANDLING FUNCTIONS CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 43 #include<stdio.h> #include<string.h> int main() { char s1[50]; char s2[50]; int i, j, k; clrscr(); printf("Enter First string: "); gets(s1); printf("Enter 2nd string: "); gets(s2); printf("nnnYour First String is : %s", s1); printf("nYour 2nd String is : %s", s2); printf("nYour First String after combined with 2nd is : %s",strcat(s1,s2) ); i=strlen(s1), j=strlen(s2); k=strcmp(s1,s2); printf("nnnYour First String Length is : %d", i); printf("nYour 2nd String Length is : %d", j); printf("nYour First and 2nd String comparison result: %d", k); strcpy(s1, "Welcome to CSE-B"); printf("nnnYour First String after copy is : %s", s1); printf("nYour 2nd string reverse form is: %s",strrev(s2)); getch(); return(0); }
  • 44. 3.5 STORAGE CLASSES IN C CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 44  Scope i.e where the value of the variable would be available inside a program.  Default initial value i.e if we do not explicitly initialize that variable, what will be its default initial value.  Lifetime of that variable i.e for how long will that variable exist. Storage classes are 1. Automatic variables 2. External variables 3. Static variables 4. Register variables
  • 45. 3.5.1 AUTOMATIC VARIABLES: AUTO CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 45  A variable declared inside a function without any storage class specification, is by default an automatic variable.  They are created when a function is called and are destroyed automatically when the function's execution is completed.  Automatic variables can also be called local variables because they are local to a function. Scope: Variable defined with auto storage class are local to the function block inside which they are defined. Default Initial Value: Any random value i.e garbage value. Lifetime: Till the end of the function/method block where the variable is defined.
  • 46. 3.5.2 EXTERNAL OR GLOBAL VARIABLE CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 46  A variable that is declared outside any function is a Global Variable.  Global variables remain available throughout the program execution.  By default, initial value of the Global variable is 0(zero).  One important thing to remember about global variable is that their values can be changed by any function in the program  The extern keyword is used with a variable to inform the compiler that this variable is declared somewhere else. The extern declaration does not allocate storage for variables. Scope: Global i.e everywhere in the program. These variables are not bound by any function, they are available everywhere. Default initial value: 0(zero). Lifetime: Till the program doesn't finish its execution, you can access global variables.
  • 47. 3.5.3 STATIC VARIABLES CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 47  A static variable tells the compiler to persist/save the variable until the end of program.  Instead of creating and destroying a variable every time when it comes into and goes out of scope, static variable is initialized only once and remains into existence till the end of the program.  A static variable can either be internal or external depending upon the place of declaration.  Scope of internal static variable remains inside the function in which it is defined. External static variables remain restricted to scope of file in which they are declared. Scope: Local to the block in which the variable is defined Default initial value: 0(Zero). Lifetime: Till the whole program doesn't finish its execution.
  • 48. 3.5.3 STATIC VARIABLES CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 48 Output: 1 2 3 #include<stdio.h> void test(); //Function declaration int main() { test(); test(); test(); } void test() { static int a = 0; //a static variable a = a + 1; printf("%dt",a); }
  • 49. 3.5.4 REGISTER VARIABLE CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 49 Scope: Local to the function in which it is declared. Default initial value: Any random value i.e garbage value Lifetime: Till the end of function/method block, in which the variable is defined.  Register variables inform the compiler to store the variable in CPU register instead of memory.  Register variables have faster accessibility than a normal variable. Generally, the frequently used variables are kept in registers.  But only a few variables can be placed inside registers.  One application of register storage class can be in using loops, where the variable gets used a number of times in the program, in a very short span of time. Syntax : register int number;
  • 50. 3.5.5 WHICH STORAGE CLASS SHOULD BE USED AND WHEN CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 50  We should use static storage class only when we want the value of the variable to remain same every time we call it using different function calls.  We should use register storage class only for those variables that are used in our program very oftenly. CPU registers are limited and thus should be used carefully.  We should use external or global storage class only for those variables that are being used by almost all the functions in the program.  If we do not have the purpose of any of the above mentioned storage classes, then we should use the automatic storage class.
  • 51. 3.6 C PREPROCESSOR CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 51 Topics to be covered  Macros  Preprocessor Directives  Predefined Macros  Preprocessor Operators
  • 52. 3.6 C PREPROCESSOR CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 52 Topics to be covered  Preprocessor Directives  Macros  Predefined Macros  Preprocessor Operators
  • 53. 3.6.1 PREPROCESSOR DIRECTIVES CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 53  C Preprocessor is just a text substitution tool and it instructs the compiler to do required pre-processing before the actual compilation.  All preprocessor commands begin with a hash symbol (#). Sr.No. Directive & Description 1 #define Substitutes a preprocessor macro. 2 #include Inserts a particular header from another file. 3 #undef Undefines a preprocessor macro. 4 #ifdef Returns true if this macro is defined. 5 #ifndef Returns true if this macro is not defined. 6 #if Tests if a compile time condition is true. 7 #else The alternative for #if. 8 #elif #else and #if in one statement. 9 #endif Ends preprocessor conditional. 10 #error Prints error message on stderr.
  • 54. 3.6.2 PREDEFINED MACROS CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 54  A macro is a name given to a block of C statements as a pre- processor directive.  Being a pre-processor, the block of code is communicated to the compiler before entering into the actual coding (main () function).  A macro is defined with the preprocessor directive, #define. Sr.No. Macro & Description 1 __DATE__ The current date as a character literal in "MMM DD YYYY" format. 2 __TIME__ The current time as a character literal in "HH:MM:SS" format. 3 __FILE__ This contains the current filename as a string literal. 4 __LINE__ This contains the current line number as a decimal constant. 5 __STDC__ Defined as 1 when the compiler complies with the ANSI standard.
  • 55. 3.6.2 PREDEFINED MACROS CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 55 #include <stdio.h> // File name preprocessor.c int main() { printf("File :%sn", __FILE__ ); printf("Date :%sn", __DATE__ ); printf("Time :%sn", __TIME__ ); printf("Line :%dn", __LINE__ ); printf("ANSI :%dn", __STDC__ ); } File : preprocessor.c Date :Oct 12 2018 Time :09:36:24 Line :7 ANSI :1
  • 56. 3.6.3 PREPROCESSOR OPERATORS CSA4101 PROBLEM SOLVING USING C :: MODULE 3 - FUNCTIONS, ARRAYS AND STRINGS 56 The Macro Continuation () Operator  A macro is normally confined to a single line. The macro continuation operator () is used to continue a macro that is too long for a single line. The Stringize (#) Operator  The stringize or number-sign operator ( '#' ), when used within a macro definition, converts a macro parameter into a string constant #include <stdio.h> #define message_for(a, b) printf(#a " and " #b ": We love you!n") int main(void) { message_for(Raj, Sekar); return 0; }