我試圖寫一個程序,讀取文件,並檢查它是否是迴文(雙方同一個詞)發現一個字或詞,如果是這樣,它們被保存到由返回分隔的另一個文件中。閱讀文件中的單詞可以用任何方式書寫:用空格隔開,用句子或回車隔開。查找單詞的文件,檢查它們是否迴文
#include<stdlib.h>
#include<stdio.h>
#include<string.h>
#define MAX 255
int palindrome(char *x, int y, int i)
{
while(i<=y){
if(x[i]!=x[y])
return 0;
i++;y--;
}
return 1;
}
int main()
{
char *reading;
int length;
int x=0;
int y=0;
char read[MAX];
char write[MAX];
FILE *r;
FILE *w;
puts("Enter read file name");
scanf("%s", read);
puts("Enter write file name");
scanf("%s", write);
r=fopen(read, "r");
if(r==NULL)
perror("File does not exist");
w=fopen(write, "w");
reading=malloc(MAX*sizeof(char));
while(fgets(reading, MAX, r)!=NULL)
{
length=strlen(reading);
while(x<=length){
for(x=y; ;x++){
printf("%c\n", reading[x]);
if((reading[x]>='a'&& reading[x]<='z') || (reading[x]>='A' && reading[x]<='Z'))
break;
}
for(y=x; ;y++){
printf("%c\n",reading[y]);
if((reading[y]>='a'&& reading[y]<='z') || (reading[y]>='A' && reading[y]<='Z'));
else
break;
}
if(palindrome(reading, y, x)==1)
for(;x<=y;x++)
fputc(reading[x], w);
x=y;
}
}
fclose(r);
fclose(w);
return 0;
}
問題是代碼不工作,如何解決它?
是否張貼的代碼工作? – 2014-11-23 10:50:48
那麼問題到底是什麼? – Mureinik 2014-11-23 10:57:28
問題是代碼不起作用... – DevGambit 2014-11-23 11:57:10