求给定字符串中包含单词的个数

本文介绍了一个使用C语言实现的简单程序,该程序能够从用户输入的一行字符串中统计出单词的数量。通过遍历字符串并利用isalpha和isdigit函数判断字符属性来区分单词与非单词字符,最终返回单词总数。
字符串只包含0-9十个数字,26个英文字母,英文标点符号,
感叹号,逗号,句号,连接符,问号,双引号一共六个标点
符号。
标点符号不算单词,连接符连接的单词算多个,例如:hello_ni_hao.

这个算作三个单词。

例如:123q##qqq**345,这个也算三个单词。


#include <stdio.h>
#include <ctype.h>
#include <string.h>


int My_words(char *inputstr, int lenght)
{
char word[64][256];
int i;
int j = 0;
int n = 0;
int flag = 0;
for(i=0; i<=lenght; ++i)
{
if(isalpha(inputstr[i])||isdigit(inputstr[i]))
{
flag = 0;
word[n][j] = inputstr[i];
++j;
}
else
{
flag++;
}
if(flag == 1)
{
word[n][j] = '\0';
if(1 == j)
{
n--;
}
n++;
j = 0;
}
}
return n;
}


int main(void)
{
char inputstr[256];
int length;
int num = 0;
printf("请您输入一行字符串:\n");
gets(inputstr);
length = strlen(inputstr);
if(length <= 0)
{
return 0;
}
num = My_words(inputstr, length);
printf("%d\n", num);
getchar();
return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值