在字符串结尾已经加了'\0',为什么输出的还是多一个
#include<stdio.h>#include<stdlib.h>
#include<string.h>
#include<ctype.h>
int main()
{
FILE *fp;
int len=0;
char str[100];
for(int i=0;scanf("%c",&str[i])&&str[i]!='!';i++)
{
}
len=strlen(str);
str[len-1]='\0';
printf("\n");
puts(str);
if((fp=fopen("test.txt","w"))==NULL)
{
printf("file open error!\n");
exit(0);
}
for(int i=0;str[i]!='\0';i++)
str[i]=toupper(str[i]);
fputs(str,fp);
fclose(fp);
return 0;
}