| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1133 人关注过本帖
标题:编译通过,但运行错误
取消只看楼主 加入收藏
luo113927
Rank: 1
等 级:新手上路
帖 子:173
专家分:0
注 册:2006-3-15
收藏
 问题点数:0 回复次数:2 
编译通过,但运行错误
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
FILE *fp;
int  strcomp  ( char strin[], char strcp[] );//比较字符串
int strlength( char *s );//求长度
void clean ( char *s );//清空数组
int main( void )
{
int k=0, ci=0, ch=0;//ch为记录换行次数
char strin[20]={"0"}, strcp[20]={"0"};//strin:为存储要查询的字符串 strcp:存储从文件里读取的一个字符串
 if( (fp=fopen("E:\\text.txt","r")) == NULL )
{ printf("无法打开该文本文件\n"); return(0); }
 for( ; ; )
{
printf("0:退出; 1:进入查询;\n");
scanf("%d",&k);
getchar();
if( 0==k ) exit(0);
printf("请输入要查询的字符或字符串\n");
scanf("%s",strin);
getchar();
while( !feof(fp) )
{
for( ci=0; strcp[ci] != ' '; ci++ )
if( ( strcp[ci]=fgetc(fp) ) == '\n' )
{
ch++;
strcp[ci]=' ';
break;
}
strcp[ci]='\0';
if( strcomp( strin,strcp ) == 1 )
printf("字符串 %s 出现在第 %d 行\n",strin,ch);
clean( strcp );
}
clean( strin );
}
fclose( fp );
return(1);
}
int strlength( char *s )
{
int i=0;
while( *(s++) != '\0' )
i++;
return( i );
}
int strcomp( char strin[], char strcp[] )
{
int i;
if( strlength( strin ) != strlength( strcp ) )
return( 0 );
else
{
for( i=0; i < strlength( strin ); i++ )
if( strin[i] != strcp[i] )
return( 0 );
return(1);
}
}
void clean( char *s )
{
while( *s != '\0' )
{
*s='\0';
s++;
}
}
搜索更多相关主题的帖子: PRE 编译 include strin 
2006-05-14 13:09
luo113927
Rank: 1
等 级:新手上路
帖 子:173
专家分:0
注 册:2006-3-15
收藏
得分:0 

呵呵,谢了斑竹先

电信宽带实在太烂了,出点问题居然要4天才来修

2006-05-17 19:14
luo113927
Rank: 1
等 级:新手上路
帖 子:173
专家分:0
注 册:2006-3-15
收藏
得分:0 
还是不能正确运行!!!
斑竹还是不行咯,,我又改了改,看不出什么错误,但一运行就错
真的晕了

[CODE]

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
FILE *fp;
int  strcomp  ( char strin[], char strcp[] );
void clean    ( char *s );
int main( void )
{
int k=0, ci, ch=1;
char s='0', strin[20]={"0"}, strcp[20]={"0"};
if( (fp=fopen("E:\\text.txt","r")) == NULL )
{ printf("无法打开该文本文件\n"); return(0); }
  printf("0:退出; 1:进入查询;\n");
  scanf("%d",&k);
  getchar();
  if( 0==k )
   exit(0);
  printf("请输入要查询的字符或字符串\n");
  gets(strin);
  while( !feof(fp) )
  {
   ci=0;
   do
   {
    s=fgetc(fp);
    //printf("%c   ....\n",s);
    if( s=='\n' )
    {
     ch++;
     break;
    }
    else if( s==' ' )
     break;
    else
     strcp[ci++] = s;
   }while( 1 );
      if( strcomp(strin,strcp) == 1 )
       printf("字符串 %s 出现在第 %d 行\n",strin,ch);
  }
fclose( fp );
return(1);
}
int strcomp( char strin[], char strcp[] )
{
int i;
if( strlen( strin ) != strlen( strcp ) )
  return( 0 );
else
{
  for( i=0; i < strlen(strin); i++ )
   if( strin[i] != strcp[i] )
    return( 0 );
     return(1);
}
}

[/CODE]

[此贴子已经被作者于2006-5-19 14:23:52编辑过]

2006-05-19 14:14
快速回复:编译通过,但运行错误
数据加载中...
 
   



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

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