1

Here's my code. Here's my desired output:

Occurrence of 'l' in Hello world = 3

But I am getting a new line after hello world. How I can fix this?

#include<stdio.h>
#include<string.h>
int main (void){
    char first_line[1000];
    char second_line[2];
    int i,n,j;
    int count=0,flag=0;
    fgets(first_line, 1000, stdin);
    fgets(second_line, 2, stdin);
    for(i=0; i<strlen(first_line); i++)
    {
        if(second_line[0]==first_line[i])
        {
            flag=1;
            count++;
        }
    }
    if(flag==1)
        printf("Occurrence of '%c' in %s = %d",second_line[0],first_line,count);

    else
        printf("%c isn't present",second_line[0]);

    return 0;
}
Archmede
  • 1,592
  • 2
  • 20
  • 37
Tonmoy Mohajan
  • 91
  • 2
  • 4
  • 13

1 Answers1

2

According to the description of the function fgets in the C Standard (7.21.7.2 The fgets function)

2 The fgets function reads at most one less than the number of characters specified by n from the stream pointed to by stream into the array pointed to by s. No additional characters are read after a new-line character (which is retained) or after end-of-file. A null character is written immediately after the last character read into the array.

To remove the new line character you can write for example

first_line[ strcspn( first_line, "\n" ) ] = '\0';
Vlad from Moscow
  • 301,070
  • 26
  • 186
  • 335