| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1002 人关注过本帖
标题:[求助字符串的程序
只看楼主 加入收藏
mp3aaa
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:2013
专家分:8
注 册:2006-2-15
收藏
得分:0 

你从新写吧 找个好的方法在写

现在程序的错误有很多 已开始根本建立不了文件 等把r改成a+的时候 根本不能往文件里写入东西
我对文件这个了解很少 只能勉强帮你
还有啊 你在吧题目说清除 到底要实现什么功能 我看你那题目都看不懂


羊肉串 葡萄干 哈密瓜!!
2007-07-07 22:47
Javal
Rank: 1
等 级:新手上路
威 望:1
帖 子:108
专家分:0
注 册:2006-5-7
收藏
得分:0 
我按照题目要求写了一个,我对题目要求作了一点更改,要是两个文件之一存在输入的字符串,则只打印是否是回文的信息,而不再把字符串写入文件。
你可以参考一下我的代码,有什么错误或者不足请指出

[CODE]/* isPalindrome.c -- 判断一个字符串是否是回文,并作相应文件操作
* Author: Space
* Date: 2007/07/07
* Version: 1.0
*/
#include <stdio.h>
#include <string.h>

#define IS_HUIWEN "yeshuiwen.txt"
#define ISNOT_HUIWEN "nohuiwen.txt"
#define BUFSIZE 1024
#define TRUE 1
#define FALSE 0

int isPalindrome(const char *str);

int main(void)
{
FILE *pf = NULL;
char input[BUFSIZE] = "\0";
char strInFile[BUFSIZE] = "\0";
int found = FALSE;
int inHWFile = FALSE;
int inNotHWFile = FALSE;

printf("Please enter a string:\n");
fgets(input, BUFSIZE, stdin);
if ((pf = fopen(IS_HUIWEN, "r")) == NULL)
{
printf("Open file %s failed!\n", IS_HUIWEN);
exit(-1);
}

while (fgets(strInFile, BUFSIZE, pf) != NULL)
{
if (strcmp(input, strInFile) == 0)
{
found = TRUE;
inHWFile = TRUE;
break;
}
}
fclose(pf);

if (! found)
{
if ((pf = fopen(ISNOT_HUIWEN, "r")) == NULL)
{
printf("Open file %s failed!\n", ISNOT_HUIWEN);
exit(-1);
}
while (fgets(strInFile, BUFSIZE, pf) != NULL)
{
if (strcmp(input, strInFile) == 0)
{
found = TRUE;
inNotHWFile = TRUE;
break;
}
}
fclose(pf);
}

if (found)
{
if (inNotHWFile)
printf("The string you entered is not a palindrome string.\n");
else if (inHWFile)
printf("The string you entered is a palindrome string.\n");
}
else
{
if (isPalindrome(input))
{
printf("The string you entered is a palindrome string.\n");
if ((pf = fopen(IS_HUIWEN, "a")) == NULL)
{
printf("Open file %s failed!\n", IS_HUIWEN);
exit(-1);
}

fputs(input, pf);
fclose(pf);
}
else
{
printf("The string you entered is not a palindrome string.\n");
if ((pf = fopen(ISNOT_HUIWEN, "a")) == NULL)
{
printf("Open file %s failed!\n", ISNOT_HUIWEN);
exit(-1);
}

fputs(input, pf);
fclose(pf);
}
}

return 0;
}

int isPalindrome(const char *str)
{
int i = 0;
int len = strlen(str) - 1;

while (i++ < len / 2 + 1)
{
if (str[i] != str[len - i - 1])
return FALSE;
}

return TRUE;
}
[/CODE]

猝然临之而不惊,无故加之而不怒 /?spaced" target="_blank">Linux C资料
2007-07-08 00:44
Javal
Rank: 1
等 级:新手上路
威 望:1
帖 子:108
专家分:0
注 册:2006-5-7
收藏
得分:0 
指出你代码的一个小错误

fopen()的时候用“a“模式,这样是在文件内容后面追加要写入的信息,如果用”w“模式的话则是删除文件已存在的信息然后再写入


猝然临之而不惊,无故加之而不怒 /?spaced" target="_blank">Linux C资料
2007-07-08 00:49
静夜嘶
Rank: 1
等 级:新手上路
帖 子:73
专家分:0
注 册:2007-7-2
收藏
得分:0 
在我机子上可以正常运行

2007-07-08 02:36
恒星的恒心
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2007-6-19
收藏
得分:0 

谢谢大家了~


2007-07-08 10:17
快速回复:[求助字符串的程序
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.028382 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved