# include & ltstring.h & gt
# include & ltstdlib.h & gt
/*定義結構字中存儲的字數和字數*/
typedef結構
{
char * str 1[20];
int strC
} WordAndCnt
//定義total函數計算總字數。
void total(char* str,WordAndCnt* wac)
{
//int sum=0,I;
int i,j;
WAC->;strC = 0;
for(i=0,j = 0;str[i]!= ' # ' & amp& ampStr[i]/*避免忘記輸的尷尬# */;I++) //妳的程序的輸入是否以字符' # '結尾?不管妳寫了什麽,我都會默認到' # '結尾。
{
if((str[I]& gt;= ' a ' & amp& ampstr[I]& lt;= ' z ')| |(str[I]& gt;= ' A ' & amp& ampstr[I]& lt;= ' Z ')//確定起始字符的位置。
{
if(i==0 ||!((str[I-1]>;= ' a ' & amp& ampstr[I-1]& lt;= ' z ')| |(str[I-1]& gt;= ' A ' & amp& ampstr[I-1]& lt;='Z ')))
{
j = I;
}
//j++;
}
如果(i & gt0 & amp& amp!((str[I]& gt;= ' a ' & amp& ampstr[I]& lt;= ' z ')| |(str[I]& gt;= ' A ' & amp& ampstr[I]& lt;= ' Z ')& amp;& amp
((str[I-1]>;= ' a ' & amp& ampstr[I-1]& lt;= ' z ')| |(str[I-1]& gt;= ' A ' & amp& ampstr[I-1]& lt;= ' z ')//結束字母的位置
{
WAC->;str 1[WAC->;strC]=(char *)calloc(I-j+1,sizeof(char));//分配空間並初始化
strncpy(WAC-& gt;str 1[WAC->;strC],str+j,I-j);
WAC->;strc++;
}
}
如果(我!=j)//將最後壹個字符串復制到str1中。
{
WAC->;str 1[WAC->;strC]=(char *)calloc(I-j+1,sizeof(char));//分配空間並初始化
strncpy(WAC-& gt;str 1[WAC->;strC],str+j,I-j);
WAC->;strc++;
}
printf("total=%d\n ",WAC-& gt;strC);
//返回(sum);
}
void main()
{
char str[1000];
WordAndCnt wac
memset(str,0,1000);
Printf("輸入壹串英文:\ n ");
gets(str);
總計(str & amp;WAC);
printf(" \ n \ n ");
if(WAC . strc & gt;0)
{
for(int I = 0;我& ltwac.strCi++)
{
Printf("輸入的%d個單詞是:% s \ n ",I+1,WAC。str 1[I]);
}
}
}