思路:按题意,用指针遍历字符串st,使用标识变量flag首次遇到字母置1并计数,遇到空格时flag重置0。
注意:本程序不考虑夹杂非字母的情况,请规范输入。比如“I am a stu**dent”,stu**dent将作为一个单词识别。
下面是代码:
#include
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;
}
int * en()
{int a[6],b[5],c[11],i,j;
for(int i=0;i<6;i++)
scanf("%d",&a[i]);
a[6]=100000;
for(int i=0;i<4;i++)
scanf("%d",&b[i]);
b[4]=100000;
for( i=0,j=0;i<6;i++)
{for(;j<4;j++)
if(a[i]{c[i+j]=a[i];break;}
else c[i+j]=b[j];
if(j>=4)c[i+j]=a[i];}
while(j<4)c[6+j++]=b[j];
return c;
}C语言数组编程,其实简洁很多,懒得想了。。
代码如上,满意请采纳,还有问题请追问。