| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1977 人关注过本帖
标题:“输入一text, 然后输出其单词个数”,main函数是在哪里错了?
只看楼主 加入收藏
forrest0227
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2007-12-10
收藏
 问题点数:0 回复次数:12 
“输入一text, 然后输出其单词个数”,main函数是在哪里错了?
我认为子程序没有问题, 可能是main程序有误,请指教。


#include<stdio.h>
int main(void)
{
    void readLine(char buffer[]);
    int countWord(char string[]), totalWords=0;
    char text1[81];
    printf("Type in your text:\n");
    readLine(text1);
    printf("%s\n",text1 );
    totalWords=countWord(text1);
    printf("the word number of this text is %i\n", totalWords );
    return 0;
}

void readLine(char buffer[])  /*读入text*/
{
char charector;
int i;
for(i=0; buffer[i]!='\0'; i++)
{
  charector=getchar();
    buffer[i]=charector;
}
buffer[i-1]='\0';
}

int alphabetic(char c)  /*以下是计算单词数目程序*/
{
     if( (c>='a'&&c<='z') || (c>='A'&&c<='B') )
         return 1;
     else return 0;
}

int countWord(char string[])
{
    int alphabetic(char c),
        Lookingforword=1, i, wordcount=0;

    for(i=0; string[i]!=0; i++)
    {
    if(alphabetic(string[i]))
    {
      if(Lookingforword==1)
      { wordcount++;
      Lookingforword=0;}
    }else Lookingforword=1;
    }
      return wordcount;
}
搜索更多相关主题的帖子: main text 函数 单词 输出 
2008-01-17 16:25
linsua
Rank: 1
等 级:新手上路
帖 子:275
专家分:0
注 册:2008-1-2
收藏
得分:0 
程序代码:
void readLine(char buffer[])  /*读入text*/
{
char charector;
int i; 
for(i=0; buffer[i]!='\0'; i++)
{
  charector=getchar();
    buffer[i]=charector;
}
buffer[i-1]='\0';
}
这个肯定是错了的。
程序代码:
void readLine(char buffer[])
{
    while((*(buffer++)=getchar())!='\n');            //?????

    *(--buffer)=0;
    return;
}
'\0'是不可能getchar()到的

[[italic] 本帖最后由 linsua 于 2008-1-17 16:58 编辑 [/italic]]

如果你对我的话感到再明白不过 那恐怕你是误解了我的意思
2008-01-17 16:56
linsua
Rank: 1
等 级:新手上路
帖 子:275
专家分:0
注 册:2008-1-2
收藏
得分:0 
if( (c>='a'&&c<='z') || (c>='A'&&c<='B') )//??               'B'??

如果你对我的话感到再明白不过 那恐怕你是误解了我的意思
2008-01-17 17:01
xianshizhe111
Rank: 1
等 级:新手上路
帖 子:1451
专家分:0
注 册:2007-12-8
收藏
得分:0 
/*通过*/
#include<stdio.h>
int main(void)
{
    void readLine(char buffer[]);
    int countWord(char string[]), totalWords=0;
    char text1[81];
    printf("Type in your text:\n");
    readLine(text1);
    printf("%s\n",text1 );
    totalWords=countWord(text1);
    printf("the word number of this text is %i\n", totalWords );
    return 0;
}

void readLine(char buffer[])/*  /*/*读入text*/*/
{
char charector;
int i=0;
while((buffer[i]=getchar())!='\n')
{
  /*charector=getchar();
    buffer[i]=charector;*/
    i++;
}
buffer[i]='\0';
}

int alphabetic(char c)/*/  /*/*以下是计算单词数目程序*/*/
{
     if( (c>='a'&&c<='z') || (c>='A'&&c<='Z') )
     return 1;
     else return 0;
}

int countWord(char string[])
{
    int alphabetic(char c),
    Lookingforword=1, i, wordcount=0;

    for(i=0; string[i]!=0; i++)
    {
    if(alphabetic(string[i]))
    {
      if(Lookingforword==1)
      { wordcount++;
      Lookingforword=0;}
    }else Lookingforword=1;
    }
    return wordcount;
}

[[italic] 本帖最后由 xianshizhe111 于 2008-1-17 19:11 编辑 [/italic]]
2008-01-17 19:10
forrest0227
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2007-12-10
收藏
得分:0 
回复 3# 的帖子
不是'B', 是'Z'
,复制过来就出现这样的情况
2008-01-17 19:46
forrest0227
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2007-12-10
收藏
得分:0 
回复 2# 的帖子
在readLine这个函数中, 通过getchar( )从终端输入,我的目的在于将输入的一位一位的通过getcher( )输入到buffer[ ]中, 遇到' \0' 就终止, 为什么不能像我写的那样?
void readLine(char buffer[ ] )  /*读入text*/
{
char charector;  int i;
for(i=0; buffer[i]!=' \0 '; i++)
{
 charector=getchar( );
    buffer[i]=charector;
}
buffer[i-1]=' \0 ';
}
2008-01-17 20:02
forever74
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:CC
等 级:版主
威 望:58
帖 子:1687
专家分:4253
注 册:2007-12-27
收藏
得分:0 
因为你的键盘输入是不产生'\0'的
2008-01-17 21:33
forrest0227
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2007-12-10
收藏
得分:0 
回复 7# 的帖子
那将' \0 '换成‘\n’,你们看可以吗?
void readLine(char buffer[ ] )  /*读入text*/
{
char charector;  int i;
for(i=0; buffer[i]!=' \n'; i++)
{
 charector=getchar( );
    buffer[i]=charector;
}
buffer[i-1]=' \0 ';
}
2008-01-17 21:37
xianshizhe111
Rank: 1
等 级:新手上路
帖 子:1451
专家分:0
注 册:2007-12-8
收藏
得分:0 
死循环
那不是作完了吗?
2008-01-17 22:17
forrest0227
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2007-12-10
收藏
得分:0 
能详细点吗?
详细点, 谢谢。
2008-01-18 14:41
快速回复:“输入一text, 然后输出其单词个数”,main函数是在哪里错了 ...
数据加载中...
 
   



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

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