这是我的代码。这是我想要的输出:
Occurrence of 'l' in Hello world = 3
但是,在hello world之后,我正在获得一条新线。我怎么解决这个问题?
#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;
}
答案 0 :(得分:2)
根据C标准中的函数fgets
的描述(7.21.7.2 fgets函数)
2 fgets函数最多读取的数量少于1 由流指向的流中的n指定的字符 s指向的数组。 a之后不会读取其他字符 新行字符(保留)或在文件结束后。空 在读入最后一个字符后立即写入字符 数组。
要删除新行字符,您可以编写例如
first_line[ strcspn( first_line, "\n" ) ] = '\0';