【发布时间】:2019-10-07 13:15:29
【问题描述】:
当我直接输入一个字符串时,比如:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char phrase[100] = "lonesomestreet";
char phrase2[100] = "lonesomestreet";
printf("String 1 has %d characters, and string 2 has %d characters.\n", strlen(phrase), strlen(phrase2));
system("pause");
return 0;
}
返回 14 个字符。 但如果我阅读它们:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char phrase[100];
char phrase2[100];
printf("Type a phrase:\n");
fgets(phrase,100,stdin);
printf("Type a phrase:\n");
fgets(phrase2,100,stdin);
printf("String 1 has %d characters, and string 2 has %d characters.\n", strlen(phrase), strlen(phrase2));
system("pause");
return 0;
}
返回 15 个字符。谁能解释一下为什么会这样?
一个补充。如果我计算字符,它也会给出 15:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char phrase[100];
char phrase2[100];
printf("Type a phrase:\n");
fgets(phrase,100,stdin);
printf("Type a phrase:\n");
fgets(phrase2,100,stdin);
int k=0;
for (int i=0; phrase[i]!='\0'; i++) {
k++;
}
printf("The phrase has %d characters.\n", k);
system("pause");
return 0;
【问题讨论】: