是的。。
----------------解决方案--------------------------------------------------------
这个程序能运行阿
----------------解决方案--------------------------------------------------------
用fgetc改了,可还是不能运行
出现debug error
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define MAX 80
struct string
{
char yelem[100];
char nelem[100];
int length;
}string1;
void main()
{
char buf[MAX];
int count1 = 0,count2=0;
int i=0,j;
FILE *fp2;
FILE *fp1;
char str[200];
printf("请输入要判断的字符串");
scanf("%s",str);
string1.length=strlen(str);
j=string1.length-1;
if ((fp1 = fopen("yeshuiwen.txt", "r")) == NULL)
{
fprintf(stderr, "Error open the file.");
exit(1);
}
while (!feof(fp1))
{
fgets(buf, MAX, fp1); //读取一行文本,放入指定内存
count1++;
if ((strstr(buf, "count")) != NULL)
{
printf("该字符串已判断过,是回文字符");
fprintf(fp1,"%s , %7.2f\n",string1.yelem,string1.length); /* 写入文件*/
fclose(fp1); /*关文件*/}
}
if((fp2 = fopen("nohuiwen.txt", "r")) == NULL)
{
fprintf(stderr, "Error open the file.");
exit(1);
}
while(!feof(fp2))
{
fgets(buf, MAX, fp2); //读取一行文本,放入指定内存
count2++;
if ((strstr(buf, "count")) != NULL)
{ printf("该字符串已判断过,不是回文字符");
fprintf(fp2,"%s , %7.2f\n",string1.yelem,string1.length); /* 写入文件*/
fclose(fp2); /*关文件*/
}
}
while(i<j)
{
if(str[i]==str[j])
{
i++;
j--;
}
else
{ printf("这不是回文字符串\n");
if ((fp2=fopen("nohuiwen.txt","w"))==NULL) /*打开只写的文本文件*/
{
printf("cannot open file!");
exit(0);
}
fprintf(fp2,"%s , %7.2f\n",string1.nelem,string1.length); /* 写入文件*/
fclose(fp2); /*关文件*/
break;
}
printf("这是回文字符串");
if ((fp1=fopen("yeshuiwen.txt","w"))==NULL) /*打开只写的文本文件*/
{
printf("cannot open file!");
exit(0);
}
fprintf(fp1,"%s , %7.2f\n",string1.yelem,string1.length); /* 写入文件*/
fclose(fp1); /*关文件*/
}
}
----------------解决方案--------------------------------------------------------
fprintf(fp1,"%s , %7.2f\n",string1.yelem,string1.length); /* 写入文件*/
是什么意思呢?你不是要把输入的字符窜写入文件中吗
该为这样:fprintf(fp1,str,string1.yelem,string1.length); /* 写入文件*/
----------------解决方案--------------------------------------------------------
谢谢了,已经能执行了.
但还没实现在
文件yeshuiwen.txt中查找这一字符串。
若有,则直接输出这一字符串是回文字符,而不用判断回文算法.
----------------解决方案--------------------------------------------------------
while (fgets(buf, MAX, fp1)) //读取
if ((strcmp(buf, str)) == NULL) //比较buf和str
printf("该字符串已判断过,是回文字符");
----------------解决方案--------------------------------------------------------
还是不能实现...
----------------解决方案--------------------------------------------------------
不会哦,我这样可以通过的.
----------------解决方案--------------------------------------------------------
郁闷,死活不运行
----------------解决方案--------------------------------------------------------
是啊,我郁闷了几天了...
----------------解决方案--------------------------------------------------------