统计单词的个数

输入一字符串,判断其中英文单词的个数

代码:

#include <stdio.h>
int main()
{
	int i, sum = 0, word = 0;
	char string[100];
	gets_s(string);
	for (i = 0; string[i] != '\0'; i++)
		if (string[i] == ' ')
			word = 0;
		else if (word == 0)
		{
			word = 1;
			sum++;
		}
	printf("该字符串中单词数是:%d\n", sum);
	return 0;
}//==此方法运用了一个简单的状态机==
 **另一个方法:**
 #include <stdio.h>
#include <string.h>
#define SIZE 20
int main()
{
    char str[SIZE]={'\0'};
    int count=0;
    printf("plz input the string\n");
    gets(str);
    puts(str);
    int length = strlen(str);
    for (int i=0;i<length;i++)
    {   
        if(str[i]!=' ')
        {
            count++;
            while(str[i]!=' '&&str[i]!='\0')
            {
                i++;
            }
        }
    }
    printf("%d\n",count);
    return 0;
}
 此方法则巧妙地跳过了连续的空格与连续的非空格字符,当你读一段代码感觉有点蒙的时候,可以在编译器上面进行单步调试来理清代码是如何进行运行的
 **我的方法:**

```c
#include <stdio.h>

int main()
{
    char ci[1000];

    gets(ci);
    int i,n=0,a,N=0;

    for(i=0;ci[i]!='\0';i++)
    {
        n++;
    }
    if(ci[0]!=' ')
        N++;
    for(a=0;a<n-1;a++)
    {
        if(ci[a]==' '&&(ci[a+1]>='a'&&ci[a+1]<='z'))
            N++;
        if(ci[a]==' '&&(ci[a+1]>='A'&&ci[a+1]<='Z'))
            N++;
    }
    printf("%d",N);

    return 0;
}

有点笨,且不具有通用性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值