输入一个英文句子,如果两个句子间有多于一个空格,删除多余的空格,然后输出处理前后的句子长度

最好用到strlen函数PS:初学者,不太明白,希望各位帮帮忙多谢了!... 最好用到strlen函数
PS:初学者,不太明白,希望各位帮帮忙
多谢了!
展开
 我来答
522515043
2010-05-22
知道答主
回答量:11
采纳率:0%
帮助的人:9.5万
展开全部
短一半
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友94c5bd4e7
2010-05-21
知道答主
回答量:6
采纳率:0%
帮助的人:0
展开全部
  #include <stdio.h>
  #include <string.h>
  #define MAX_LEN 128

  /**
  * 该函数的作用为当有两个连续空格出现时,
  * 去掉多余的那个空格。因为是循环执行,故当有多个
  * 连续空格出现时,也可以删到只剩一个空格。
  */
  int fun( char *input_str, char *output_str )
  {
  int i, j;
  char *p;

  strcpy( output_str, input_str );
  p = output_str;

  /* 去掉句子开头的空格 */
  while( *p = ' ' )
  for( i = 0; i < strlen( p ); i++ )
  *( p + i ) = *( p + i + 1 );

  /* 去掉句子中间多余的空格 */
  for( i = 0; i < strlen( p ); i++ )
  {
  if( *( p + i ) == ' ' )
  {
  while( *( p + i + 1 ) == ' ' )
  {
  j = i + 1;
  while( *( p + j + 1 ) != '\0' )
  {
  *( p + j ) = *( p + j + 1 );
  j++;
  }
  *( p + j ) = '\0';
  }
  else continue;
  }
  else continue;
  }

  /* 去掉句子结尾的空格 */
  while( *( p + strlen(p) - 1 ) == ' ' )
  *( p + strlen(p) - 1 ) = '\0';

  return 0;
  }

  /* this is a test */
  void main()
  {
  char input[]=" this is a input str for test! ";
  char output[ MAX_LEN ];

  fun( input, output );

  /* 输出调整前后句子的值及长度 */
  printf("befor run fun, str is:[%s] \nstrlen1=%d\n", input, strlen( input) );
  printf("after run fun, str is:[%s] \nstrlen2=%d\n", output, strlen(output) );
  }
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式