#include
#include
int main()
{
char a[50];
char word[50];
char *string=a;
int c,d,total=0,i;
int characternumber(char *str);
int wordnumber(char *str);
void divide(char *str,char *word);
printf("请输入一个带有标点符号或空格的字符串\n");
gets(string);
for(i=0;*(string+i)!='\0';i++)
total++;
c=characternumber(string);
d=wordnumber(string );
divide(string,word);
printf("字符串中的字母数为%d,单词数为%d\n",c,d);
printf("各个单词为\n");
for(c=0;c<total;c++)
printf("%c",word[c]);
return 0;
}
int characternumber(char str)
{
int count=0,i=0,k=0,temp=0,b=0;
char delimiters[]=",.!? \";:\"";
for(i=0;(str+i)!='\0';i++)
b++;
for(i=0;*(str+i)!='\0';i++)
for(k=0;k<9;k++)
if(*(str+i)==delimiters[k])
temp++;
count=b-temp;
return count;
}
int wordnumber(char str)
{
int count=0,i=0,k=0,temp=0,b=0;
char delimiters[]=",.!? \";:\"";
for(i=0;(str+i)!='\0';i++)
b++;
for(i=0;i<b;i++)
for(k=0;k<9;k++)
if(*(str+i)!=delimiters[k]&&*(str+i+1)==delimiters[k])
count++;
return count;
}
void divide(char str,char *word)
{
int i,b,k,temp=0;
char delimiters[]=",.!? \";:\"";
for(i=0;(str+i)!='\0';i++)
b++;
for(i=0;i<b;i++)
{for(k=0;k<9;k++)
{if(*(str+i)=delimiters[k])
temp=1;break;}
if(temp==0)
word[i]=str[i];
if(temp==1)
word[i]='\n';}
}
最后一个函数 我想把标点换成换行符
题目要求写函数做