当前位置: 代码迷 >> C语言 >> [求助字符串的程序
  详细解决方案

[求助字符串的程序

热度:234   发布时间:2007-07-07 14:57:04.0

是的。。


----------------解决方案--------------------------------------------------------
这个程序能运行阿
----------------解决方案--------------------------------------------------------

用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("该字符串已判断过,是回文字符");


----------------解决方案--------------------------------------------------------
还是不能实现...
----------------解决方案--------------------------------------------------------

不会哦,我这样可以通过的.


----------------解决方案--------------------------------------------------------
郁闷,死活不运行
----------------解决方案--------------------------------------------------------
是啊,我郁闷了几天了...
----------------解决方案--------------------------------------------------------
  相关解决方案