宏的定义以及指针和函数的使用
题目是让我们设计一个程序,统计一句英文句子中的单词个数。英文单词用空格分开。题目的难处在于,如果中间分隔的空格很多,如何破解。
我的想法是这样的:用宏将所有的英文字母定义为1,然后空格定义为0,然后进行两个字符间的加减,如果相减为1,表示英文字母接空格;相减为-1,表示空格接英文字母;相减为0,表示两个英文字母在一起或者空格在一起。定义完后,我统计相减结果为1的次数就可以知道有几个单词了。
我写的程序是这样的:(目前还没有宏定义,因为不会;然后就是报错有很多,我不懂为啥报错的)
程序代码:
#include <stdio.h> STA(char a[]); #define int main() char a=[100],*p; printf("请输入一句英文句子:"); for(i=0;i<=100;) {scanf("%c",&p); i++; p+=i; } b=STA(a[]); printf("%d",b); return 0; } STA(char a[]) for(i=0;i<=100;i++) {m=a[i]-a[i+1]; if(m==1) x+=1; } return (x);