Search This Blog


Sunday, 5 May 2019

May 05, 2019

C Programming Strings

WELCOME BACK TO codejunction.in , In this article, you'll learn to handle strings and its operations in C programming. You'll learn to declare them, initialize them and use them for various I/O operations.


Table of Contents
C strings
How to declare a string?
How to initialize strings?
Read string from the user
Example: scanf() to read string
Example: gets() and puts()
Passing strings to a function
Example: Passing strings to a function
Strings and pointers
Example: Strings and pointers
Commonly used string functions
In C programming, a string is an array of characters terminated with a null character \0.

For example:


"c string"
When compiler encounters a sequence of characters enclosed in the double quotation marks, it appends a null character \0 at the end.


Memory diagram of strings in C programming

How to declare a string?
Before you can work with strings, you need to declare them first. Since string is an array of characters. You declare strings in a similar way like you do with arrays.

If you don't know what arrays are, we recommend you to check C arrays.

Here's how you declare a string:

char s[5];
string declaration in C programming

How to initialize strings?
You can initialize strings in a number of ways.

char c[] = "abcd";

char c[50] = "abcd";

char c[] = {'a', 'b', 'c', 'd', '\0'};

char c[5] = {'a', 'b', 'c', 'd', '\0'};
Initialization of strings in C programming

Read String from the user
You can use the scanf() function to read a string.

The scanf() function reads the sequence of characters until it encounters a whitespace (space, newline, tab etc.).

Example 1:

 scanf() to read a string
#include <stdio.h>
int main()
{
    char name[20];
    printf("Enter name: ");
    scanf("%s", name);
    printf("Your name is %s.", name);
    return 0;
}

Output

Enter name: Dennis Ritchie
Your name is Dennis.
Even though Dennis Ritchie was entered in the above program, only "Ritchie" was stored in the name string. It's because there was a space after Ritche.

How to read a line of text?
You can use gets() function to read a line of string. And, you can use puts() to display the string.

Example 2:


 gets() and puts()
#include <stdio.h>
int main()
{
    char name[30];
    printf("Enter name: ");
    gets(name);     // read string
    printf("Name: ");
    puts(name);    // display string
    return 0;
}
When you run the program, the output will be:

Enter name: Tom Hanks
Name: Tom Hanks
Passing Strings to Function
Strings can be passed to a function in a similar way as arrays. Learn more about passing array to a function.

Example 3:


 Passing string to a Function
#include <stdio.h>
void displayString(char str[]);

int main()
{
    char str[50];
    printf("Enter string: ");
    gets(str);           
    displayString(str);     // Passing string to a function.   
    return 0;
}
void displayString(char str[])
{
    printf("String Output: ");
    puts(str);
}

Strings and Pointers
Similar like arrays, string names are "decayed" to pointers. Hence, you can use pointer with the same name as string to manipulate elements of the string. We recommended you to check C Arrays and Pointers before you check this example:

Example 4: 


Strings and Pointers
#include <stdio.h>

int main(void) {
  char name[] = "Harry Potter";

  printf("%c", *name);     // Output: H
  printf("%c", *(name+1));   // Output: a
  printf("%c", *(name+7));   // Output: o

  char *namePtr;

  namePtr = name;
  printf("%c", *namePtr);     // Output: H
  printf("%c", *(namePtr+1));   // Output: a
  printf("%c", *(namePtr+7));   // Output: o
}

Saturday, 4 May 2019

May 04, 2019

C Programming Arrays

In this article, you will learn to work with arrays. You will learn to declare, initialize and, access array elements with the help of examples.


Table of Contents


C Arrays
How to declate arrays?
How to access array elements?
How to initialize an array?
How to insert elements to an array?
Initialize array during declaration
Example: Arrays
Be careful while using arrays in C
C arrays


An array is a collection of a fixed number of values of a single type. For example: if you want to store 100 integers in sequence, you can create an array for it.

int data[100];
The size and type of arrays cannot be changed after its declaration.


Arrays are of two types:


One-dimensional arrays
Multidimensional arrays (will be discussed in next chapter)


How to declare arrays?


data_type array_name[array_size];
For example,

float mark[5];
Here, we declared an array, mark, of floating-point type and size 5. Meaning, it can hold 5 floating-point values.

Elements of an Array and How to access them?
You can access elements of an array by indices.

Suppose you declared an array mark as above. The first element is mark[0], second element is mark[1] and so on.

C Array declaration 


Few key notes:
Arrays have 0 as the first index not 1. In this example, mark[0]
If the size of an array is n, to access the last element, (n-1) index is used. In this example, mark[4]
Suppose the starting address of mark[0] is 2120d. Then, the next address, a[1], will be 2124d, address of a[2] will be 2128d and so on. It's because the size of a float is 4 bytes.
How to initialize an array?
It's possible to initialize an array during declaration. For example,

int mark[5] = {19, 10, 8, 17, 9};

Another method to initialize array during declaration:

int mark[] = {19, 10, 8, 17, 9};

Initialize an array in C programming

Here,

mark[0] is equal to 19
mark[1] is equal to 10
mark[2] is equal to 8
mark[3] is equal to 17
mark[4] is equal to 9
How to insert and print array elements?
int mark[5] = {19, 10, 8, 17, 9}

// insert different value to third element
mark[3] = 9;

// take input from the user and insert in third element
​scanf("%d", &mark[2]);

// take input from the user and insert in (i+1)th element
scanf("%d", &mark[i]);

// print first element of an array
printf("%d", mark[0]);

// print ith element of an array
printf("%d", mark[i-1]);
Example: C Arrays
// Program to find the average of n (n < 10) numbers using arrays


CODE


#include <stdio.h>
int main()
{
     int marks[10], i, n, sum = 0, average;
     printf("Enter n: ");
     scanf("%d", &n);
     for(i=0; i<n; ++i)
     {
          printf("Enter number%d: ",i+1);
          scanf("%d", &marks[i]);
          sum += marks[i];
     }
     average = sum/n;

     printf("Average = %d", average);

     return 0;
}



OUTPUT


Enter n: 5
Enter number1: 45
Enter number2: 35
Enter number3: 38
Enter number4: 31
Enter number5: 49
Average = 39

Important thing to remember when working with C arrays
Suppose you declared an array of 10 elements. Let's say,

int testArray[10];
You can use the array members from testArray[0] to testArray[9].

If you try to access array elements outside of its bound, let's say testArray[12], the compiler may not show any error. However, this may cause unexpected output (undefined behavior).
May 04, 2019

C Program to Copy String Without Using strcpy()

WELCOME BACK TO codejunction.in , In this article, you'll learn to copy string without using the library function strcpy().


To understand this example, you should have the knowledge of following C programming topics:

C Programming Arrays
C Programming Strings
C Programming for Loop

You can use the strcpy() function to copy the content of one string to another but, this program copies the content of one string to another manually without using strcpy() function.

Example: Copy String Manually Without Using strcpy()


CODE


#include <stdio.h>
int main()
{
    char s1[100], s2[100], i;

    printf("Enter string s1: ");
    scanf("%s",s1);

    for(i = 0; s1[i] != '\0'; ++i)
    {
        s2[i] = s1[i];
    }

    s2[i] = '\0';
    printf("String s2: %s", s2);

    return 0;
}


OUTPUT