1.你的程序要读入一行文本,其中以空格分隔为若干个单词,以.
结束。你要输出每个单词的长度。这里的单词与语言无关,可以包括各种符号,比如it's
算一个单词,长度为4。注意,行中可能出现连续的空格;最后的.
不计算在内
思路:1.储存方式:足够大的数组空间储存字符串。
2.两个标记符号:flag:进行计数,统计上一空格后与下一空格前的单词个数。
flag2:用于控制输出时是否需要输出空格
#include<stdio.h>
#include<string.h>
int main()
{
char ch,ch2[1000];
int i,flag=0,j,t,flag2=0; //初始化flag2=0
gets(ch2);
t=strlen(ch2); //得到当前字符串的长度
for(i=0;i<t;i++)
{
flag++; //每执行一次循环,就记一次数
if(ch2[i]==' ') //遇到空格,便输出当前单词长度
{
if((flag-1)!=0) //面对多空格的情况,因为每次执行一次循环,flag会归0
printf("%d",flag-1);
for(j=i;j<t;j++) //内循环:判断该单词之后是否还有字母
{
if((ch2[j]!=' ')&&(ch2[j]!='.'))
{
flag2=1;
break;
}
}
if((flag2==1)&&((flag-1)!=0))
printf(" ");
flag=0;
flag2=0;
}
}
if(flag-1>0)
printf("%d",flag-1);
return 0;
}