How to write string programs in C

How to write string programs in C

A String in C is basically a sequence of characters/symbols which is terminated with a null character \0.
E.g., char str = “this is a string”
Let us see how to declare a string in C.
Declare string variable

char str[16] = "This is a string" 
char str[] = "This is a string" 

Taking Inputs -

  • scanf() : this function is used to take string inputs in C.
    char str[30] ; scanf(%s,”This is a string”)
    This function is useful only when our string does not contain any spaces. In the above statement only “This” will be taken from the user.
  • fgets() : we can use this function even if we have spaces. Mostly this function is followed by a puts() function to print the entered string.

Code Implementation -

#include <stdio.h>
int main(void) {
    // char str[30];
    // scanf("%s",str);
    // printf("%s",str);
    char str1[30];
    fgets(str1,sizeof(str1), stdin);
    puts(str1); //prints the string
    return 0;
}
Output: This is a string

Accessing each elements of a string in C

Well, each of the characters are stored in a position contiguously. So, if we find out the length of the string then we can simply use a for loop to iterate through the elements of the string. We use strlen() function of string header file in C to get the length of our string.

Code Implementation –

#include <stdio.h>
#include <string.h>
int main(void) {
    char str[30];
    fgets(str,sizeof(str), stdin);
    //acessing each elements of the string
    for(int i = 0;i<strlen(str);i++)
        printf("%c",str[i]);
    return 0;
}

Now when we know to write basic program lets see an example –

Suppose we are given a string and we want to find the number of spaces in the string.
The idea is to iterate over the string elements and whenever we get a ‘(space) ‘character we increase our count.

Code Implementation –

#include <stdio.h>
#include <string.h>
int main(void) {
    char str[30];
    fgets(str,sizeof(str), stdin);
    int count = 0;
    //acessing each elements of the string
    for(int i = 0;i<strlen(str);i++)
    {
        if(str[i] == ' ')
            count++;
    }
    printf("%d", count);
    return 0;
} 

Time Complexity: O(length(str))

Another interesting example can be concatenating two strings.
We can do this manually by adding the characters of string 2 to the end of string 1.
Or we can directly use the strcat() function to do this. This function takes two arguments string 1 and string 2 and concatenates them and stores the result in string 1.

Code Implementation –

#include <stdio.h>
#include <string.h>
int main() {
  char s1[100] = "This is string1 ", s2[] = "This is string 2";
  int length, j;
  length = strlen(s1);
  for (j = 0; s2[j] != '\0'; ++j, ++length) {
    s1[length] = s2[j];
  }
//or simply
//strcat(s1,s2);
  s1[length] = '\0';
  puts(s1);
  return 0;
}

Time Complexity: O(length(str))

Previous post 25 Most Important programming interview questions
Next post 50 simple java programs for beginners

Leave a Reply

Your email address will not be published. Required fields are marked *