C语言字符数组编程题?
输入一行字符串,统计其中有多少个单词。例如:Iamastudent有4个单词指定子函数:intGetWordNum(charst[])第一次遇到不是空格的,计为新单词。...
输入一行字符串,统计其中有多少个单词。例如:I am a student 有4个单词
指定子函数:int GetWordNum(char st[])
第一次遇到不是空格的,计为新单词。 展开
指定子函数:int GetWordNum(char st[])
第一次遇到不是空格的,计为新单词。 展开
3个回答
展开全部
思路:按题意,用指针遍历字符串st,使用标识变量flag首次遇到字母置1并计数,遇到空格时flag重置0。
注意:本程序不考虑夹杂非字母的情况,请规范输入。比如“I am a stu**dent”,stu**dent将作为一个单词识别。
下面是代码:
#include <stdio.h>
int GetWordNum(char st[])
{
char *p=st;
int cnt=0,flag=0;
while(*p)
{
if(flag==0 && ((*p>='a' && *p<='z') || (*p>='A' && *p<='Z')))
cnt++,flag=1;
if(flag && *p==' ')
flag=0;
p++;
}
return cnt;
}
int main()
{
char str[]="I am a student";
printf("%s共计单词个数%d\n",str,GetWordNum(str));
return 0;
}
展开全部
#include <stdio.h>
int GetWordNum(char st[])
{
const char *p = &st[0];
int s = 0;
while (*p)
{
while (*p && *p == ' ')++p;
while (*p && *p != ' ')++p;
++s;
}
return s;
}
int main(int argc, char *argv[])
{
char buf[100];
fgets(buf, sizeof(buf), stdin);
printf("%d\n", GetWordNum(buf));
return 0;
}
int GetWordNum(char st[])
{
const char *p = &st[0];
int s = 0;
while (*p)
{
while (*p && *p == ' ')++p;
while (*p && *p != ' ')++p;
++s;
}
return s;
}
int main(int argc, char *argv[])
{
char buf[100];
fgets(buf, sizeof(buf), stdin);
printf("%d\n", GetWordNum(buf));
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询