求解惑,关于strlen和fgets
今天写了段代码,程序代码:
#include <stdio.h> #include<ctype.h> #include<string.h>/*预处理*/ void str_toupper(char str[]) { int i=0; while(str[i]){ str[i]=toupper(str[i]); i++; }/*把小写字母改成大写的*/ } int stricomp(const char str1[],const char str2[]) { int n; for(n=0;n<1000&&str1[n]!='\0'&&str2[n]!='\0';n++) if(str1[n]!=str2[n])return 0; return 1;/*比较两个字符串是否一致*/ } int main(void) { char str1[1000]={'\0'}; char str2[1000]={'\0'}; FILE *fp,*fp1,*fp2; if((fp=fopen("F:\\vc\\cba.txt","r"))==NULL){ puts("buxing");return(0);}/*判断文件是否打开*/ fp1=fp; fgets(str1,strlen(fp1->_ptr),fp);/*复制字符*/ fclose(fp); if((fp2=fopen("F:\\vc\\abc.txt","r"))==NULL){ puts("buxing ");return(0);} fp1=fp2; fgets(str2,strlen(fp1->_ptr),fp); fclose(fp2); str_toupper(str1); str_toupper(str2); printf("%d\n",stricomp(str1,str2)); return 0; }这段代码编译时一点问题也没用,但在生成txt文件时却不能生成
经过努力发现是红色的那两句引起的,兄弟们帮看看怎么解决,我还是想用strlen这个函数的