Chinaunix首页 | 论坛 | 博客
  • 博客访问: 884144
  • 博文数量: 286
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1841
  • 用 户 组: 普通用户
  • 注册时间: 2015-05-09 16:26
文章分类

全部博文(286)

文章存档

2016年(38)

2015年(248)

我的朋友

分类: LINUX

2015-08-06 18:06:21

题目内容:

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


输入格式:

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


输出格式:

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


输入样例:

It's great to see you here.


输出样例:

4 5 2 3 3 4


点击(此处)折叠或打开

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>

  4. int main(int argc , char *arg[])
  5. {
  6.     char in_str[100];
  7.     printf("please input many words\n");
  8.     gets(in_str);
  9.     char *p;
  10.     p=in_str;

  11.     printf("%s\n",in_str );
  12.     int str_len[100];
  13.     int *len;
  14.     len=str_len;

  15.     int i=0;
  16.     int j=0;
  17.     int n=0;
  18.     while( *p !='.')
  19.     {    
  20.         if (i==0)
  21.         {    ++i;
  22.             //printf("i=0 :%c\n",*p );
  23.             p++;
  24.             
  25.             continue;
  26.         }
  27.         
  28.         if (*p==' ' && in_str[i-1] != ' ')
  29.         {    
  30.             *len=i-j;
  31.             len++;
  32.             n++;
  33.             //p++;
  34.             while(in_str[i+1]==' ')
  35.             {
  36.                 ++i;
  37.                 p++;
  38.             }
  39.             j=i+1;
  40.         }
  41.         p++;
  42.         ++i;
  43.     }
  44.     str_len[n]=i-j;
  45.     for (i = 0; i < n+1; ++i)
  46.     {
  47.         printf("%d ",str_len[i] );
  48.     }
  49.     return 0;
  50. }

阅读(1081) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~