Arrays and Strings

Arrays

An array in C or C++ is a collection of items stored at contiguous memory locations and elements can be accessed randomly using indices of an array. They are used to store similar types of elements as in the data type must be the same for all elements. They can be used to store the collection of primitive data types such as int, float, double, char, etc of any particular type. To add to it, an array in C or C++ can store derived data types such as the structures, pointers, etc.

There are two types of arrays:

  • One Dimensional Array
  • Multi Dimensional Array

One Dimensional Array: A one dimensional array is a collection of same data types. 1-D array is declared as:

                      data_type variable_name[size];

  • data_type is the type of array, like int, float, char, etc.
  • variable_name is the name of the array.
  • size is the length of the array which is fixed.

Note: The location of the array elements depends upon the data type we use.

Below is the program to illustrate the traversal of the array:

// C++ program to illustrate the traversal of the array

#include "iostream"

using namespace std;

// Function to illustrate traversal in arr[]

void traverseArray(int arr[], int N)

{

    // Iterate from [1, N-1] and print the element at that index

    for (int i = 0; i < N; i++) {

        cout << arr[i] << ' ';

    }

}  

int main() {

    int arr[] = { 1, 2, 3, 4 };

    int N = sizeof(arr) / sizeof(arr[0]);

    traverseArray(arr, N);

}

Output:

1 2 3 4

Multi Dimensional Array: A multidimensional array is also known as array of arrays. Generally, we use a two-dimensional array. It is also known as the matrix. We use two indices to traverse the rows and columns of the 2D array. It is declared as:

                                   data_type variable_name[N][M];

  • data_type is the type of array, like int, float, char, etc.
  • variable_name is the name of the array.
  • N is the number of rows.
  • M is the number of columns.

// C++ program to illustrate the traversal of the 2D array

#include "iostream"

using namespace std;

const int N = 2;

const int M = 2;

// Function to illustrate traversal in arr[][]

void traverse2DArray(int arr[][M], int N)  {

    // Iterate from [1, N-1] and print the element at that index

    for (int i = 0; i < N; i++) {

        for (int j = 0; j < M; j++) {

            cout << arr[i][j] << ' ';

        }

        cout << endl;

    }

}

int main()  {

    int arr[][M] = { { 1, 2 }, { 3, 4 } };

    traverse2DArray(arr, N);

    return 0;

}

Output:

1 2 

3 4

                                                                      Strings

C++ string class internally uses character array to store character but all memory management, allocation, and null termination are handled by string class itself that is why it is easy to use. For example it is declared as:

char str[] = "ArrayForString"

Below is the program to illustrate the traversal in the string:

// C++ program to illustrate the traversal of string

#include "iostream"

using namespace std;

// Function to illustrate traversal in string

void traverseString(char str[]) {

    int i = 0; 

    // Iterate till we found '\0'

    while (str[i] != '\0') {

        cout<<str[i]<<" ";

        i++;

    }

}

int main() {

    char str[] = "ArrayForString";

    traverseString(str);

    return 0;

}

Output:

A r r a y F o r S t r i n g

The string data_type in C++ provides various functionality of string manipulation. They are:

  • strcpy(): It is used to copy characters from one string to another string.
  • strcat(): It is used to add the two given strings.
  • strlen(): It is used to find the length of the given string.
  • strcmp(): It is used to compare the two given string.

Below is the program to illustrate the above functions:

#include <iostream>

#include "string.h"

using namespace std;

int main() {

char str1[100] = "HelloWorld";

char str2[100] = "Programming World";


int x = strlen(str1);


cout << "Length of " << str1<< " is " << strlen(str1) << endl;

        cout << "Length of " << str2<< " is " << strlen(str2) << endl;

cout << endl;

int result = strcmp(str1, str2);

if (result == 0) {

cout << "String " << str1<< " and String " << str2<< " are equal." << endl;

}

else {

cout << "String " << str1<< " and String " << str2<< " are not equal." << endl;

}


cout << "String str1 before: "<< str1 << endl;

strcpy(str1, str2);


cout << "String str1 after: "<< str1 << endl;

strcat(str1,str2);

cout << "String str1 after Concatenation: "<< str1 << endl;

return 0;

}


No comments:

Post a Comment