输入一行字符,统计其中有多少个单词,单词之间用空格分隔开,空格可以是多个

lq2625304 2010-01-05 04:50:39
不用数组和指针如何做这题。
...全文
1138 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
用stl跟c++流。。不知道算不算用数组跟指针呢。
lq2625304 2010-01-05
  • 打赏
  • 举报
回复
谢谢大家了。
selooloo 2010-01-05
  • 打赏
  • 举报
回复

#include <stdio.h>

int main(void)
{
char ch;
int count=1,flag=1;
puts("Input some words:");
while((ch=getchar())!='\n')
{
if(ch==' ')
{
if(flag==1)
count++;
flag=0;
}
else
flag=1;
}
printf("you input %d words\n",count);
getchar();
return 0;
}
lusure 2010-01-05
  • 打赏
  • 举报
回复
#include <stdio.h>

int main()
{
unsigned char ch=0;
unsigned char preCh=' ';
int nWords = 0;
while (ch != '\n')
{
scanf("%c",&ch);
if (ch == ' '&& preCh != ' ')
{
nWords++;
preCh = ch;
}
else
{
preCh = ch;
}
}
nWords++;
printf("There are %d words\n",nWords);
return 0;
}
mstlq 2010-01-05
  • 打赏
  • 举报
回复
也能解决问题的代码……
下面的风格很糟糕,楼主拿来当反面教材就行了……

#include <stdio.h>
int main()
{
int num=0,flag=1,ch;
while ((ch=getchar())!='\n' &&(ch==' '?flag=1:((flag==1?++num:1),flag=2)));
printf("%d\n",num);
return 0;
}
mstlq 2010-01-05
  • 打赏
  • 举报
回复

#include <stdio.h>
int main()
{
int num=0,flag=0;
char ch;
while ((ch=getchar())!='\n')
{
if (ch==' ')
flag=0;
else{
if (flag==0)
++num;
flag=1;
}
}
printf("%d\n",num);
return 0;
}
hacker1125 2010-01-05
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 jamesf1982 的回复:]
用递归


[/Quote]
正解
james_hw 2010-01-05
  • 打赏
  • 举报
回复
用递归

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧