关键:
本程序的关键在于单词个数应在遇到下一个不为空格的字符,或者遇到字符串结束符’\0’时才能增加1。
/*------------------------------------------------------------
功能:计算单词的个数
描述:对输入的一行可由任意可打印字符组成的字符串中单词的个数,
在字符串的任意位置可包含任意个数的空格符,在行尾也可包含任意
个数的空格符。
输入示例:
This is a test string
输出示例:
5
---------------------------------------------------------------
Author: Zhang Kaizhou
Date: 2019-3-10 23:18:25
--------------------------------------------------------------*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAXSIZE 1000
void word_number(char * str, int * n);
int main(){
char str[MAXSIZE];
int n;
gets(str);
word_number(str, &n);
printf("%d\n", n);
return 0;
}
void word_number(char * str, int * n){
char * p = str;
int flag, count = 0;
while(* p != '\0'){
flag = 0;
p++;
while(* p == ' '){
flag = 1;
p++;
}
if(flag == 1 || * p == '\0'){
count++;
}
}
* n = count;
return;
}