c语言字符统计2sdut,C语言实验——单词统计(字符串) SDUT

C语言实验——单词统计

Problem Description

从键盘输入一行字符(长度小于100),统计其中单词的个数,各单词以空格分隔,且空格数可以是多个。

Input

输入只有一行句子。仅有空格和英文字母构成。

Output

单词的个数。

Sample Input

stable marriage problem Consists of Matching members

Sample Output

7

#include #include #include int main()

{

int i, len, num, t;

char a[101];

memset(a, 0, sizeof(a));

gets(a);

len = strlen(a);

num = 0;

t = 0;

for(i = 1; i < len; i++)

{

if(a[i] == ' ') t = 0;

//当字符为空格时,令t=0

else if(t == 0 && a[i] != ' ')

{//当t=0即当前字符之前存在空格,且当前字符不为空格时执行此if

t = 1;//令t=1,防止下次进入此if重复计数

num++;

}

}

printf("%d\n", num);

return 0;

}

此题我一开始写的代码入下方是所示:

#include #include #include int main()

{

int i, len, num;

char a[101];

memset(a, 0, sizeof(a));

gets(a);

len = strlen(a);

num = 0;

if(a[0] == '\0')

num = 0;

//如果没输入单词,则num = 0,否则进入循环计算单词量

else

{

num = 1;//如果a[0]不为'\0',则有单词输入且它为第一个

for(i = 1; i < len; i++)

{

if(a[i - 1] == ' ' && a[i] != ' ')

{

num++;

}//如果a[i - 1]为空格,且a[i]不为空格,则出现新单词

}

}

printf("%d\n", num);

return 0;

}

这样写的错误的,假如一开始是这样输入:

stable marriage problem Consists of Matching members

最前面是存在空格的话就会出现问题,所以必须改为上方有标记变量的写法,并且上方那种有标记变量的写法在很多程序中都有所应用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值