0% found this document useful (0 votes)
25 views62 pages

Unit 3 Arrays and Strings

Arrays allow storing and accessing similar data elements using a single name. They can be one-dimensional, storing elements in a list, or multi-dimensional, with elements accessed via multiple indices. Elements are stored contiguously in memory. Arrays can be initialized at compile-time with a list of values or at run-time via input functions. Two-dimensional arrays represent matrices, with elements accessed via row and column indices.

Uploaded by

Preetha V
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
25 views62 pages

Unit 3 Arrays and Strings

Arrays allow storing and accessing similar data elements using a single name. They can be one-dimensional, storing elements in a list, or multi-dimensional, with elements accessed via multiple indices. Elements are stored contiguously in memory. Arrays can be initialized at compile-time with a list of values or at run-time via input functions. Two-dimensional arrays represent matrices, with elements accessed via row and column indices.

Uploaded by

Preetha V
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 62

ARRAYS AND STRINGS

PREETHA V AP/CSE, SRIT


ARRAYS

PREETHA V AP/CSE, SRIT


Array

 An Array is a collection of similar data items,


that are stored under a common name.
 Array might belonging to any of the data types
 Array size must be a constant value.
 Always, Contiguous(adjacent) memory locations
are used to store array elements in memory.

PREETHA V AP/CSE, SRIT


Uses of array

 Stores the elements of same data type.


 Used for maintaining multiple variable names
using a single name.
 Used for sorting elements.
 Matrix operations can be performed using
arrays.
 Arrays are also used in CPU scheduling.
PREETHA V AP/CSE, SRIT
Types of arrays

 Types
 One-Dimensional array
 Two-Dimensional array
 Multi-Dimensional array

PREETHA V AP/CSE, SRIT


One-Dimensional array

 Array declaration:
 Syntax:
data_type array_name[size];
 Example: int x[3];

x
X[0]
X[1]
PREETHA V AP/CSE, SRIT
X[2]
Array initialization
 The initializer for an array is a comma-separated list of constant
expressions enclosed in braces ({ }).

 The initializer is preceded by an equal sign (=).

 It is not necessary to initialize all elements in an array. If an


array is partially initialized, elements that are not initialized
receive the value of the appropriate type.

 Array initialization can be made either :


 At compile time or
PREETHA V AP/CSE, SRIT
 At run time
At compile time

 Syntax:
data_type array_name[size]={variables};
Example: int x[3]={5,3,7};

x
5
X[0]
3
X[1]
7
PREETHA V AP/CSE, SRIT
X[2]
At Run time

 Array can also be initialized at the run time.

Example:
while(i<10)
{
if(i<5)
sum[i]=0;
else
sum[i]=sum[i]+i;
}
PREETHA V AP/CSE, SRIT
Example:
scanf(“%d%d”,&a[0],&a[1]);
Example

#include<stdio.h>
#include<conio.h>
void main()
{
int x[2],i;
printf("\nEnter the inputs:");
for(i=0;i<2;i++)
scanf("%d",&x[i]);
for(i=0;i<2;i++)
printf("\nThe value in x[%d] is %d",i,x[i]);
PREETHA V AP/CSE, SRIT getch();
}
Output

Enter the inputs:3


6

The value in x[0] is 3


The value in x[1] is 6

PREETHA V AP/CSE, SRIT


Example

#include<stdio.h>
#include<conio.h>
void main()
{
int i;
char x[5]={'a','b','c','d','e'};
clrscr();
for(i=0;i<5;i++)
printf("\nThe value in x[%d] is %c",i,x[i]);
PREETHA V AP/CSE, SRIT
getch();
}
Output

The value in x[0] is a


The value in x[1] is b
The value in x[2] is c
The value in x[3] is d
The value in x[4] is e

PREETHA V AP/CSE, SRIT


Two-Dimensional array

 Array declaration
 Syntax:
data_type array_name[row_size] [col_size];
 Example: int x[3][2];

Col 0 Col 1
row 0 X[0][0] X[0][1]

row 1 X[1][0] X[1][1]


X[2][0] X[2][1]
PREETHA V AP/CSE, SRIT
row 2
2-D Array Initialization

 Syntax:
data_type array_name[row_size] [col_size]={variables};

 Example: int x[2][2]={1,50,2,75};

PREETHA V AP/CSE, SRIT


Example

 int x[2][2]={ {1,50},


{2,75}
};

(or)

 int x[ ][2]={ {1,50},


{2,75}
};

PREETHA V AP/CSE, SRIT


 The array elements will be stored in contiguous memory locations, and it
is illustrated below:

Col 0 Col 1
1 50
row 0
2 75
row 1

PREETHA V AP/CSE, SRIT


Example
#include<stdio.h>
#include<conio.h>
void main()
{
int i,j;
int x[2][2]={ {1,50},
{2,75}
};
clrscr();
for(i=0;i<2;i++)
for(j=0;j<2;j++)
printf("\nThe value in x[%d][%d] is %d",i,j,x[i][j]);
getch();
PREETHA V AP/CSE, SRIT
}
Output

The value in x[0][0] is 1


The value in x[0][1] is 50
The value in x[1][0] is 2
The value in x[1][1] is 75

PREETHA V AP/CSE, SRIT


Example

#include<stdio.h>
#include<conio.h>
void main()
{
int i,j;
int x[][2]={ {1,50},{2,75},{3,65}};
clrscr();
for(i=0;i<=2;i++)
for(j=0;j<2;j++)
printf("\nThe value in x[%d][%d] is %d",i,j,x[i][j]);
getch();
PREETHA V AP/CSE, SRIT
}
Output

The value in x[0][0] is 1


The value in x[0][1] is 50
The value in x[1][0] is 2
The value in x[1][1] is 75
The value in x[2][0] is 3
The value in x[2][1] is 65

PREETHA V AP/CSE, SRIT


Matrix Addition
#include<stdio.h>
#include<conio.h>
void main()
{
int i,j,k,r1,r2,c1,c2;
int a[5][5],b[5][5],c[5][5];
clrscr();
step1:
printf("\n Enter the size of matrix A:");
scanf("%d%d",&r1,&c1);
printf("\n Enter the size of matrix B: ");
scanf("%d%d",&r2,&c2);
if((c1==c2)&&(r1==r2))
goto step2;
PREETHA V AP/CSE, SRIT
else
goto step1;
step2:
printf("\n Enter the elements of matrix A \n");
for(i=0;i<r1;i++)
{
for(j=0;j<c1;j++)
{
scanf("%d",&a[i][j]);
}
}
printf("\n Enter the elements of matrix B \n");
for(i=0;i<r2;i++)
{
for(j=0;j<c2;j++)
{
scanf("\t%d",&b[i][j]);
PREETHA V AP/CSE, SRIT
}
}
for(i=0;i<r1;i++)
{
for(j=0;j<c1;j++)
{
c[i][j]=0;
c[i][j]=c[i][j]+a[i][j]+b[i][j];
}
}
printf("\n The resultant matrix after addition of A & B is\n");
for(i=0;i<r1;i++)
{
for(j=0;j<c1;j++)
printf("%d\t",c[i][j]);
printf("\n");
}
getch();
PREETHA V AP/CSE, SRIT
}
Output
Enter the size of matrix A: 2
2
Enter the size of matrix B: 2
2
Enter the elements of matrix A
2
2
2
2
Enter the elements of matrix B
3
3
3
3
The resultant matrix after addition of A&B is
PREETHA V AP/CSE, SRIT
5 5
5 5
Matrix Multiplication
#include<stdio.h>
#include<conio.h>
void main()
{
int i,j,k,r1,r2,c1,c2;
int a[5][5],b[5][5],c[5][5];
clrscr();
step1:
printf("\n Enter the size of matrix A \n");
scanf("%d%d",&r1,&c1);
printf("\n Enter the size of matrix B \n");
scanf("%d%d",&r2,&c2);
if(c1==r2)
goto step2;
else
PREETHA V AP/CSE, SRIT
goto step1;
step2:
printf("\n Enter the elements of matrix A \n");
for(i=0;i<r1;i++)
{
for(j=0;j<c1;j++)
{
scanf("%d",&a[i][j]);
}
}
printf("\n Enter the elements of matrix B \n");
for(i=0;i<r2;i++)
{
for(j=0;j<c2;j++)
{
scanf("\t%d",&b[i][j]);
}
}
PREETHA V AP/CSE, SRIT
for(i=0;i<r1;i++)
{
for(j=0;j<c2;j++)
{
c[i][j]=0;
for(k=0;k<c1;k++)
{
c[i][j]=c[i][j]+a[i][k]*b[k][j];
}
}
}
for(i=0;i<r1;i++)
{
for(j=0;j<c2;j++)
printf("%d\t",c[i][j]);
printf("\n");
PREETHA V AP/CSE, SRIT }
getch();
Output
Enter the size of matrix A:2
2
Enter the size of matrix B:2
2
Enter the elements of matrix A
4
4
4
4
Enter the elements of matrix B
4
4
4
4
The resultant matrix is
PREETHA V AP/CSE, SRIT
32 32
32 32
Enter the size of matrix A:2
3
Enter the size of matrix B:3
2
Enter the elements of matrix A
1
2
3
4
5
6
Enter the elements of matrix B
2
4
6
8
2
4
The resultant matrix is
PREETHA V AP/CSE, SRIT
20 32
50 80
Passing array to Function

 An array can be passed as a parameter to a function by


specifying the array's name without an index.
 Here an array is transferred as parameter to a function.

void main() void fun(n,b[])


{ {
void fun(int,int); int x,b[5];
int a[5],n; …………..
…………… …………..
fun(n,a);
…………… }
PREETHA V AP/CSE, SRIT
}
Example
#include<stdio.h>
#include<conio.h>
void add(int,int b[]);
void main()
{
int a[5],i,n;
clrscr();
printf("\n Enter the Number: ");
scanf("%d",&n);
printf("\n Enter the Values: ");
for(i=0;i<n;i++)
scanf("%d",&a[i]);
PREETHA V AP/CSE, SRIT add(n,a);
}
void add(int x,int b[])
{
int sum=0,i;
for(i=0;i<x;i++)
sum=sum+b[i];
printf("\nThe sum is: %d",sum);
}

PREETHA V AP/CSE, SRIT


Output

Enter the Number: 5

Enter the Values: 1


2
3
4
5

The sum is: 15


PREETHA V AP/CSE, SRIT
Array of Characters

 In an array the characters are terminated by the null (‘\0’) character.


 Example: char a[]={a,b,c};

a b c \0

PREETHA V AP/CSE, SRIT


Example
#include<stdio.h>
#include<conio.h>
void main()
{
int i=0;
char a[]="abcd";
clrscr();
while(a[i]!='\0')
{
printf("\t%c",a[i]);
i++;
}
}
PREETHA V AP/CSE, SRIT
Output

a b c d

PREETHA V AP/CSE, SRIT


Multi Dimensional Array

 Arrays can have more than one dimension, these arrays-


of-arrays are called multidimensional arrays.

 Here is the general form of a multidimensional array


declaration:
datatype array_name [size1][size2]….[size n]

datatype - type of the data.

PREETHA V AP/CSE, SRIT


array_name -name of the array.
size -size of the array.
 They are very similar to standard arrays with the exception that they
have multiple sets of square brackets after the array identifier.

 A two dimensional array can be thought of as a grid of rows and


columns.

 A two-dimensional array is an example in this section, although the


techniques can be extended to three or more dimensions.

 The simplest form of the multidimensional array is the two-dimensional


array.

PREETHA V AP/CSE, SRIT


Example:

int a[3][3][3];

Col 0 Col 1 Col 2


row 0 X[0][0] X[0][1] X[0][2]
row 1 X[1][0] X[1][1] X[1][2]

row 2 X[2][0] X[2][1] X[2][2]

PREETHA V AP/CSE, SRIT


C program to calculate the mean,
variance & standard deviation

#include <stdio.h>
#include <math.h>
#define MAXSIZE 10

void main()
{
float x[MAXSIZE];
int i, n;
float average, variance, std_deviation, sum = 0, sum1 = 0;

printf("Enter the value of N \n");


scanf("%d", &n);
printf("Enter %d real numbers \n", n);
for (i = 0; i < n; i++)
{
scanf("%f", &x[i]); }
/* Compute the sum of all elements */
for (i = 0; i < n; i++)
{ sum = sum + x[i]; }
average = sum / (float)n;
/* Compute variance and standard deviation */
for (i = 0; i < n; i++) {
sum1 = sum1 + pow((x[i] - average), 2);
}
variance = sum1 / (float)n;
std_deviation = sqrt(variance);
printf("Average of all elements = %.2f\n", average);
printf("variance of all elements = %.2f\n", variance);
printf("Standard deviation = %.2f\n", std_deviation);
}
Output

Enter the value of N 5


Enter 5 real numbers 34 88 32 12 10
Average of all elements = 35.20
variance of all elements = 794.56
Standard deviation = 28.19
STRINGS

PREETHA V AP/CSE, SRIT


String
 The string is actually a one-dimensional array of characters
which is terminated by a null character '\0'.

 All the string handling functions are prototyped in: string.h


header file. So while using any string related function, don't
forget to include string.h.

 String constants have double quote marks around them.

 String constants can be assigned to a char array either


with no size specified, or the size can also be specified, but
PREETHA V AP/CSE, SRIT
don't forget to leave a space for the null character.
String Handling Functions
 Strings are often needed to be manipulated by the programmer
according to the need of a problem. Hence, C provides a variety
of string handling functions.

 String handling functions refers to a group of functions


implementing various operations on strings.

 Some of the operations performed by the string handling functions


includes:
› Length (number of characters in the string).
› Concatenation (adding two are more strings)
› Comparing two strings.
PREETHA V AP/CSE, SRIT › Substring (Extract substring from a given string)
› Copy(copies one string over another)
 The various string handling functions supported by C are as
follows:

 strlen()
It is used to find the length of the string.
syntax:
strlen(string)
 strcpy()
It is used to copy one string to another.
syntax:
strcpy(string1,string2)
 strcat()
It is used to combine two strings.
syntax:
PREETHA V AP/CSE, SRIT
strcat(string1,string2)
 strcmp()
It is used to compare two strings.
syntax:
strcmp(string1,string2)
 Returns 0 if two strings are equal.
 Return value <0 if s1 is less than s2.
 Return value >0 if s1 is greater than s2.

 strrev()
It used to reverse a string.
syntax:
strrev(string)

 strlwr(), strupr()
It used to change the case of a string.
syntax:
PREETHA V AP/CSE, SRIT strlwr(string)
strupr(string)
 strncpy()
It used to copy ‘n’ characters of one string to another.

 strstr()
It is used to determine the first occurrence of a given string in another string.

 strncat()
It appends source string to destination string up to specified length.

 strspn()
It is used to find up to what length two strings are identical.

PREETHA V AP/CSE, SRIT


 strncmp()
It is used to compare ‘n’ character of two strings.

 strcmpi()
It is used to compare two strings without regarding the case.

 strnicmp()
It is used to compare first ‘n’ characters of two strings
without regarding the case.

 strchr()
It is used to determine the first occurrence of a given
character in a string.

PREETHA V AP/CSE, SRIT


 strrchr()
It is used to determine the last occurrence of a given
Example 1
#include<stdio.h>
#include<conio.h>
#include<string.h>
void main()
{
char a[]="college";
int b;
clrscr();
b=strlen(a);
printf("\nThe length of the string is %d",b);
getch();
}

PREETHA V AP/CSE, SRIT


Output:
The length of the string is 7
Example 2
#include<stdio.h>
#include<conio.h>
#include<string.h>
void main()
{
char a[ ]="IT";
char b[ ]="Dept";
clrscr();
strcpy(a,b);
printf("\nThe string is %s",a);
getch();
}

Output:
PREETHA V AP/CSE, SRIT
The string is Dept
Example 3
#include<stdio.h>
#include<conio.h>
#include<string.h>
void main()
{
char a[ ]="IT";
char b[ ]="Dept";
clrscr();
strcat(a,b);
printf("\nThe string is %s",a);
getch();
}

Output:
PREETHA V AP/CSE, SRIT
The string is ITDept
Example 4
#include<stdio.h>
#include<conio.h>
#include<string.h>
void main()
{
char a[ ]="itdept";
char b[ ]="it";
int i;
clrscr();
i=strcmp(a,b);
if(i==0)
printf("\nstrings are equal:%d",i);
PREETHA V AP/CSE, SRIT
else if(i<0)
printf("\nstring1 is less than string2:%d",i);
else
printf("\nstring1 is greater than string2:%d",i);
getch();
}

Output:
string1 is greater than string2:100

PREETHA V AP/CSE, SRIT


Example 5
#include<stdio.h>
#include<conio.h>
#include<string.h>
void main()
{
char a[ ]="itdept";
clrscr();
printf("\nThe string is :%s",a);
strupr(a);
printf("\nThe string after conversion to uppercase :%s",a);
strlwr(a);
printf("\nThe string after conversion to lowercase :%s",a);
PREETHA V AP/CSE, SRIT getch();
}
Output

The string is : itdept


The string after conversion to uppercase :ITDEPT
The string after conversion to lowercase : itdept

PREETHA V AP/CSE, SRIT


Example 6
#include<stdio.h>
#include<conio.h>
#include<string.h>
void main()
{
char a[ ]="Dept";
clrscr();
printf("\nThe string is %s",strrev(a));
getch();
}

Output:
PREETHA V AP/CSE, SRIT The string is tpeD
Example 7
#include<stdio.h>
#include<conio.h>
#include<string.h>
void main()
{
char a[ ]="itdept";
char b[15];
int i=0;
clrscr();
strncpy(b,a,2);
b[2]='\0';
printf("\nThe string is :%s",b);
getch();
}
PREETHA V AP/CSE, SRIT
Output:
The string is :it
String Palindrome

#include<stdio.h>
#include<conio.h>
#include<string.h>
void main()
{
int len,i,j;
char str[15];
clrscr();
printf("\n Enter the string:");
scanf("%s",str);
len=strlen(str);
PREETHA V AP/CSE, SRIT
for(i=0,j=len-1;i<len/2;i++,j--)
{
if(str[i]!=str[j])
{
printf("\n The String is not a palindrome");
getch();
exit(0);
}
}
printf("\n The String is a palindrome");
getch();
}

Output:
PREETHA V AP/CSE, SRIT
Enter the string: abcba
The String is a palindrome
PREETHA V - AP/CSE, SRIT.

You might also like