Unit 5
Unit 5
Computer
Prof.Programming
Nilesh Gambhava with C(102000110) #3110003 (PPS) – Array and Strings 1
Need of Array Variable
Suppose we need to store rollno of the student in the integer variable.
Declaration
int rollno;
Computer
Prof.Programming
Nilesh Gambhava with C(102000110) #3110003 (PPS) – Array and Strings 2
Definition: Array
An array is a fixed size sequential collection of elements of same data type grouped
under single variable name.
Computer
Prof.Programming
Nilesh Gambhava with C(102000110) #3110003 (PPS) – Array and Strings 3
Declaring an array
Syntax By default array index starts
data-type variable-name[size]; with 0.
If we declare an array of size
5 then its index ranges from
Integer Array [0] [1] [2] [3] [4] 0 to 4.
int mark[5];
First element will be store at
mark[0] and last element
integer will be stored at mark[4] not
mark[5].
Float Array [0] [1] [2] [3] [4] Like integer and float array
float avg[5];
we can declare array of type
char.
float
Computer
Prof.Programming
Nilesh Gambhava with C(102000110) #3110003 (PPS) – Array and Strings 4
Initialing and Accessing an Array
Declaring, initializing and accessing single integer variable
int mark=90; //variable mark is initialized with value 90
printf("%d",mark); //mark value printed
Computer
Prof.Programming
Nilesh Gambhava with C(102000110) #3110003 (PPS) – Array and Strings 5
Read(Scan) Array Elements
Reading array without loop Reading array using loop
1 void main() 1 void main()
2 { 2 {
3 int mark[5]; 3 int mark[5],i;
printf("Enter array element="); for(i=0;i<5;i++)
4 4
scanf("%d",&mark[0]); {
5 printf("Enter array element="); 5 printf("Enter array element=");
6 scanf("%d",&mark[1]); 6 scanf("%d",&mark[i]);
7 printf("Enter array element="); 7 }
8 scanf("%d",&mark[2]); 8 for(i=0;i<5;i++)
9 printf("Enter array element="); 9 {
10 scanf("%d",&mark[3]); 10 printf("%d",mark[i]);
11 printf("Enter array element="); 11 }
scanf("%d",&mark[4]);
12 12 }
13 printf("%d",mark[0]);
14 printf("%d",mark[1]);
15 printf("%d",mark[2]);
16 printf("%d",mark[3]); [0] [1] [2] [3] [4]
17 printf("%d",mark[4]); mark[5] 85 75 65 55 45
18 }
Computer
Prof.Programming
Nilesh Gambhava with C(102000110) #3110003 (PPS) – Array and Strings 6
Develop a program to count number of positive or negative
number from an array of 10 numbers.
Program
1 void main(){
2 int num[10],i,pos,neg; Output
3 pos = 0; Enter array element=1
4 neg = 0; Enter array element=2
5 for(i=0;i<10;i++) Enter array element=3
6 { Enter array element=4
7 printf("Enter array element="); Enter array element=5
8 scanf("%d",&num[i]); Enter array element=-1
9 } Enter array element=-2
10 for(i=0;i<10;i++) Enter array element=3
11 { Enter array element=4
12 if(num[i]>0) Enter array element=5
13 pos=pos+1; Positive=8,Negative=2
14 else
15 neg=neg+1;
16 }
17 printf("Positive=%d,Negative=%d",pos,neg);
18 }
Computer
Prof.Programming
Nilesh Gambhava with C(102000110) #3110003 (PPS) – Array and Strings 7
Develop a program to read n numbers in an array and print
them in reverse order.
Program
1 void main()
2 { Output
3 int num[100],n,i; Enter number of array
4 printf("Enter number of array elements="); elements=5
5 scanf("%d",&n); Enter array element=1
6 //loop will scan n elements only Enter array element=2
7 for(i=0;i<n;i++) Enter array element=3
8 { Enter array element=4
9 printf("Enter array element="); Enter array element=5
10 scanf("%d",&num[i]); 5
11 } 4
12 //negative loop to print array in reverse order 3
13 for(i=n-1;i>=0;i--) 2
14 { 1
15 printf("%d\n",num[i]);
16 }
17 }
Computer
Prof.Programming
Nilesh Gambhava with C(102000110) #3110003 (PPS) – Array and Strings 8
Develop a program to find largest array element in C.
Program
1 #include <stdio.h>
2 int main() { Output
3 int n;
4 double arr[100];
5 printf("Enter the number of elements (1 to 100):
6 "); Enter the number of
7 scanf("%d", &n); elements (1 to 100): 5
8 for (int i = 0; i < n; ++i) { Enter number1: 34.5
9 printf("Enter number%d: ", i + 1);
10 scanf("%lf", &arr[i]); Enter number2: 2.4
11 } Enter number3: -35.5
12 // storing the largest number to arr[0] Enter number4: 38.7
13 for (int i = 1; i < n; ++i) {
14 if (arr[0] < arr[i]) { Enter number5: 24.5
15 arr[0] = arr[i]; Largest element = 38.70
16 } }
17 printf("Largest element = %.2lf", arr[0]);
return 0;}
Computer
Prof.Programming
Nilesh Gambhava with C(102000110) #3110003 (PPS) – Array and Strings 9
Practice Programs
1) Develop a program to calculate sum of n array elements in C.
2) Develop a program to calculate average of n array elements in C.
3) Develop a program to print sum of second and second last element of an array.
4) Develop a program to copy array elements to another array.
5) Develop a program to count odd and even elements of an array.
Computer
Prof.Programming
Nilesh Gambhava with C(102000110) #3110003 (PPS) – Array and Strings 10
Multi Dimensional Array
Declaring 2 Dimensional Array
Syntax A two dimensional array can
data-type variable-name[x][y]; be seen as a table with ‘x’
rows and ‘y’ columns.
Declaration The row number ranges from
int data[3][3]; //This array can hold 9 elements 0 to (x-1) and column
number ranges from 0 to
(y-1).
int data[3][3];
Column-0 Column-1 Column-2
Computer
Prof.Programming
Nilesh Gambhava with C(102000110) #3110003 (PPS) – Array and Strings 12
Initialing and Accessing a 2D Array: Example-1
Program
1 int data[3][3] = {
2 {1,2,3}, //row 0 with 3 elements
3 {4,5,6}, //row 1 with 3 elements
4 {7,8,9} //row 2 with 3 elements
5 }; Column-0 Column-1 Column-2
6 printf("%d",data[0][0]); //1
7 printf("%d",data[0][1]); //2 Row-0 1 2 3
8 printf("%d\n",data[0][2]); //3
9 Row-1 4 5 6
10 printf("%d",data[1][0]); //4
11 printf("%d",data[1][1]); //5 Row-2 7 8 9
12 printf("%d\n",data[1][2]); //6
13
14 printf("%d",data[2][0]);//7
15 printf("%d",data[2][1]); //8
16 printf("%d",data[2][2]); //9
1 // data[3][3] can be initialized like this also
2 int data[3][3]={{1,2,3},{4,5,6},{7,8,9}};
Computer
Prof.Programming
Nilesh Gambhava with C(102000110) #3110003 (PPS) – Array and Strings 13
Initialing and Accessing a 2D Array: Example-2
Program
1 int data[2][4] = {
2 {1,2,3,4}, //row 0 with 4 elements
3 {5,6,7,8}, //row 1 with 4 elements
4 };
5 printf("%d",data[0][0]); //1
6 printf("%d",data[0][1]); //2 Col-0 Col-1 Col-2 Col-3
7 printf("%d",data[0][2]); //3
8 printf("%d\n",data[0][3]); //4 Row-0 1 2 3 4
9
10 printf("%d",data[1][0]); //5 Row-1 5 6 7 8
11 printf("%d",data[1][1]); //6
12 printf("%d",data[1][2]); //7
13 printf("%d",data[1][3]); //8
Computer
Prof.Programming
Nilesh Gambhava with C(102000110) #3110003 (PPS) – Array and Strings 14
Read(Scan) 2D Array Elements
Program
1 void main(){
2 int data[3][3],i,j;
3 for(i=0;i<3;i++)
4 {
5 for(j=0;j<3;j++)
6 { Output
7 printf("Enter array element="); Enter array element=1
8 scanf("%d",&data[i][j]); Enter array element=2
9 } Enter array element=3
10 } Enter array element=4
11 for(i=0;i<3;i++) Enter array element=5
12 { Enter array element=6
13 for(j=0;j<3;j++) Enter array element=7
14 { Enter array element=8
15 printf("%d",data[i][j]); Enter array element=9
16 } 123
17 printf("\n"); 456
18 } 789
19 }
Computer
Prof.Programming
Nilesh Gambhava with C(102000110) #3110003 (PPS) – Array and Strings 15
Develop a program to count number of positive, negative and
zero elements from 3 X 3 matrix
Program
1 void main(){
2 int data[3][3],i,j,pos=0,neg=0,zero=0; Output
3 for(i=0;i<3;i++) Enter array element=9
4 { Enter array element=5
5 for(j=0;j<3;j++) Enter array element=6
6 { Enter array element=-3
7 printf("Enter array element="); Enter array element=-7
8 scanf("%d",&data[i][j]); Enter array element=0
9 if(data[i][j]>0) Enter array element=11
10 pos=pos+1; Enter array element=13
11 else if(data[i][j]<0) Enter array element=8
12 neg=neg+1; positive=6,negative=2,zero=1
13 else
14 zero=zero+1;
15 }
16 }
17 printf("positive=%d,negative=%d,zero=%d",pos,neg,zero);
18 }
Computer
Prof.Programming
Nilesh Gambhava with C(102000110) #3110003 (PPS) – Array and Strings 16
Practice Programs
1. Develop a program to perform addition of two matrix.
2. Develop a program to perform multiplication of two matrix.
Computer
Prof.Programming
Nilesh Gambhava with C(102000110) #3110003 (PPS) – Array and Strings 17
String
(Character Array)
Definition: String
A String is a one-dimensional array of characters terminated by a null('\0').
Each character in the array occupies one byte of memory, and the last character
must always be null('\0').
The termination character ('\0') is important in a string to identify where the
string ends.
[0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
name[10] D A R S H A N \0
Computer
Prof.Programming
Nilesh Gambhava with C(102000110) #3110003 (PPS) – Array and Strings 19
Declaring & Initializing String
Declaration
char name[10];
Initialization method 1:
char name[10]={‘C’,’O’,’M',’P',’U',’T',’E',’R’,’\0’};
Initialization method 2:
char name[10]=“COMPUTER";
//'\0' will be automatically inserted at the end in this type of declaration.
[0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
name[10] C O M P U T E R ‘\0’
Computer
Prof.Programming
Nilesh Gambhava with C(102000110) #3110003 (PPS) – Array and Strings 20
Read String: scanf()
Program
Output
1 void main()
2 { Enter name: Computer
3 char name[10]; Name=Computer
4 printf("Enter name:"); Output
5 scanf("%s",name);
Enter name: CE Computer
6 printf("Name=%s",name);
Name=CE
7 }
Computer
Prof.Programming
Nilesh Gambhava with C(102000110) #3110003 (PPS) – Array and Strings 21
Read String: gets()
Program
1 #include<stdio.h> Output
2 void main() Enter name:MBIT Institute
3 { Name=MBIT Institute
4 char name[10];
5 printf("Enter name:");
6 gets(name); //read string including white spaces
7 printf("Name=%s",name);
8 }
gets(): Reads characters from the standard input and stores them as a string.
puts(): Prints characters from the standard.
scanf(): Reads input until it encounters whitespace, newline or End Of File(EOF)
whereas gets() reads input until it encounters newline or End Of File(EOF).
gets(): Does not stop reading input when it encounters whitespace instead it
takes whitespace as a string.
Computer
Prof.Programming
Nilesh Gambhava with C(102000110) #3110003 (PPS) – Array and Strings 22
C program to find the length of a string
Program
#include <stdio.h>
#include <string.h>
return 0;
}
Computer
Prof.Programming
Nilesh Gambhava with C(102000110) #3110003 (PPS) – Array and Strings 23
to concatenate two strings without using strcat in c
Program #include<stdio.h>
void main(void)
{
char str1[25],str2[25];
int i=0,j=0; Enter First String: Hello
printf("\nEnter First String:"); Enter Second String: World
gets(str1); Concatenated String is : HelloWorld
printf("\nEnter Second String:");
gets(str2);
while(str1[i]!='\0’)
i++;
while(str2[j]!='\0’)
{
str1[i]=str2[j];
j++;
i++;
}
str1[i]='\0’;
printf("\nConcatenated String is %s",str1); }
Computer
Prof.Programming
Nilesh Gambhava with C(102000110) #3110003 (PPS) – Array and Strings 24
String Handling Functions : strlen()
C has several inbuilt functions to operate on string. These functions are known as
string handling functions.
strlen(s1): returns length of a string in integer
Program
1 #include <stdio.h> Output
2 #include <string.h> //header file for string functions Enter string: CE Darshan
3 void main() 10
4 {
5 char s1[10];
6 printf("Enter string:");
7 gets(s1);
8 printf("%d",strlen(s1)); // returns length of s1 in integer
9 }
Computer
Prof.Programming
Nilesh Gambhava with C(102000110) #3110003 (PPS) – Array and Strings 25
String Handling Functions: strcmp()
strcmp(s1,s2): Returns 0 if s1 and s2 are the same.
Returns less than 0 if s1<s2.
Returns greater than 0 if s1>s2.
Program
1 void main() Output
2 { Enter string-1:Computer
3 char s1[10],s2[10]; Enter string-2:Computer
4 printf("Enter string-1:"); Strings are same
5 gets(s1);
6 printf("Enter string-2:"); Output
7 gets(s2); Enter string-1:Computer
8 if(strcmp(s1,s2)==0) Enter string-2:Computer
9 printf("Strings are same"); Strings are same
10 else
11 printf("Strings are not same");
12 }
Computer
Prof.Programming
Nilesh Gambhava with C(102000110) #3110003 (PPS) – Array and Strings 26
String Handling Functions
For examples consider: char s1[]="Their",s2[]="There";
Syntax Description
strcpy(s1,s2) Copies 2nd string to 1st string.
strcpy(s1,s2) copies the string s2 in to string s1 so s1 is now “There”. s2
remains unchanged.
strchr(s1,c) Returns a pointer to the first occurrence of a given character in the string s1.
printf("%s",strchr(s1,'i'));
Output : ir
strstr(s1,s2) Returns a pointer to the first occurrence of a given string s2 in string s1.
printf("%s",strstr(s1,"he"));
Output : heir
Computer
Prof.Programming
Nilesh Gambhava with C(102000110) #3110003 (PPS) – Array and Strings 27
String Handling Functions (Cont…)
For examples consider: char s1[]="Their",s2[]="There";
Syntax Description
strrev(s1) Reverses given string.
strrev(s1); makes string s1 to “riehT”
strlwr(s1) Converts string s1 to lower case.
printf("%s",strlwr(s1)); Output : their
strupr(s1) Converts string s1 to upper case.
printf("%s",strupr(s1)); Output : THEIR
strncpy(s1,s2,n) Copies first n character of string s2 to string s1
s1=""; s2="There";
strncpy(s1,s2,2);
printf("%s",s1); Output : Th
strncat(s1,s2,n) Appends first n character of string s2 at the end of string s1.
strncat(s1,s2,2);
printf("%s", s1); Output : TheirTh
Computer
Prof.Programming
Nilesh Gambhava with C(102000110) #3110003 (PPS) – Array and Strings 28
String Handling Functions (Cont…)
For examples consider: char s1[]="Their",s2[]="There";
Syntax Description
strncmp(s1,s2,n) Compares first n character of string s1 and s2 and returns similar result as
strcmp() function.
printf("%d",strcmp(s1,s2,3)); Output : 0
strrchr(s1,c) Returns the last occurrence of a given character in a string s1.
printf("%s",strrchr(s2,'e')); Output : ere
https://www.scaler.com/topics/c/string-functions-in-c/
Computer
Prof.Programming
Nilesh Gambhava with C(102000110) #3110003 (PPS) – Array and Strings 29
Thank you