In C programming language, the strings doesn’t have a special data type on it’s own. So it’s usually represented with characters itself. Usually an array of characters is used to represent characters like this:

int char[1000];

Characters can be read by variety of methods like:

  1. scanf(“%s”, char);

It can read a single string, but reading strings with spaces is not supported by scanf operators

  1. Then there is getline() function which is defined in C programming lanaguage book. It’s actually part of the build in library.
#include <stdio.h>
#include <string.h>

int main()
  int bytes_read;
  int nbytes = 100;
  char *my_string;

  puts ("Please enter a line of text.");

  /* These 2 lines are the heart of the program. */
  my_string = (char *) malloc (nbytes + 1);
  bytes_read = getline (&my_string, &nbytes, stdin);

  if (bytes_read == -1)
      puts ("ERROR!");
      puts ("You typed:");
      puts (my_string);
      printf("%d", strlen(my_string));

  return 0;

  1. There is gets() functions which is generally considered as unsafe
  2. fgets() is more safe as it provides a bounded input
fgets(string, 1000, stdin);

For more details check this stackoverflow answer

As a bonus, I am sharing how to find Pangram of a given string in C

#define MAX_LIMIT 1000

int main() {
    char string[MAX_LIMIT];
    int character_hash[26]={0};
    int pancount = 0;
    fgets(string, 1000, stdin);

    for(int i=0; i<strlen(string); i++) {
        if('a'<=string[i] && string[i]<='z')  {
            character_hash[string[i]-'a'] += 1;
        else if('A'<=string[i] && string[i]<='Z') {
            character_hash[string[i]-'A'] += 1;
    for(int i=0;i<26;i++){
        if(character_hash[i]==0) {

    if(pancount==0) {
    else if(pancount==1) {
        printf("Not Pangram\n");
        for(int i=0;i<26;i++) {
            if(character_hash[i]==0) {
            printf("%c ", i+'a'); }