单词长度

题目内容:

你的程序要读入一行文本,其中以空格分隔为若干个单词,以‘.’结束。你要输出这行文本中每个单词的长度。这里的单词与语言无关,可以包括各种符号,比如“it's”算一个单词,长度为4。注意,行中可能出现连续的空格。

 

输入格式:

输入在一行中给出一行文本,以‘.’结束,结尾的句号不能计算在最后一个单词的长度内。

 

输出格式:

在一行中输出这行文本对应的单词的长度,每个长度之间以空格隔开,行末没有最后的空格。

 

输入样例:

It's great to see you here.

 

输出样例:

4 5 2 3 3 4

时间限制:500ms内存限制:32000kb
 1 #include <stdio.h>
 2 
 3 int main(void)
 4 {
 5     char s[100], *p;
 6     int i, start, end, count;
 7 
 8     gets(s);
 9     p = s;
10     while (*p != '.')
11     {
12         p++;
13     }
14     *++p = '\0';    //在.后面加上字符串结束符
15 
16     p = s;
17     i = 0;
18     start = end = -1;   //start单词开始索引,end单词结束索引,初始化-1
19     count = 0;
20     while (*p != '\0')
21     {
22         if (*p != ' ' && start == -1)
23         {
24             start = i;
25         }
26         if ((*p == ' ' || *p == '.') && start != -1)
27         {
28             end = i - 1;
29         }
30         if (start != -1 && end != -1)   //找到开始索引和结束索引后
31         {
32             if (count == 0)
33             {
34                 printf("%d", end - start + 1);
35             }
36             else
37             {
38                 printf(" %d", end - start + 1);
39             }
40             start = end = -1;
41             count++;
42         }
43         i++;
44         p++;
45     }
46     printf("\n");
47 
48     return 0;
49 }

 

posted @ 2020-04-19 11:35  jason2018  阅读(162)  评论(0编辑  收藏  举报