如何将多个空格用一个代替 求解

ForestDB 2003-07-22 01:27:21
C程序设计语言 练习1-9
编写一个程序,把它的输入复制到输出,并在此过程中将相连的多个空格用一个空格代替

请给出较简练的解答
...全文
209 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
bluei 2003-08-02
  • 打赏
  • 举报
回复
楼主给的例子就很简单了,还想怎么样呀?看看另外两位给的。
ForestDB 2003-08-02
  • 打赏
  • 举报
回复
up
fireseed 2003-07-25
  • 打赏
  • 举报
回复
在C++版当然要用C++的东东 :)

以下代码在VC.net环境下编译调试成功,并正常运行

#include <iostream>
#include <string>
using namespace std;

#define MAXCHAR 1024
#define WHITESPACE ' '
void main()
{
size_t k = 0;
size_t iter = 0;
char in[MAXCHAR], out[MAXCHAR];

cin.getline( in, MAXCHAR, '\n');
size_t len = strlen( in );

while( WHITESPACE == in[++iter] );
for ( ; iter < len; iter++ )
{
if ( WHITESPACE == in[iter] )
{
out[k++] = WHITESPACE;
while( ' ' == in[++iter] );
}
out[k++] = in[iter];
}
out[k] = 0;
cout << out;

system( "pause" );
}
xiaoyunet 2003-07-25
  • 打赏
  • 举报
回复
寻找连续的两个空格,然后用一个空格代替,继续。
jakeye 2003-07-25
  • 打赏
  • 举报
回复
打屁股
forever1314 2003-07-25
  • 打赏
  • 举报
回复
\t
ForestDB 2003-07-25
  • 打赏
  • 举报
回复
自己up :)
ForestDB 2003-07-25
  • 打赏
  • 举报
回复
我的本意应该是像下面这段程序

// main.c

#include <stdio.h>

main ()
{
int c, prior;

prior = 0;
while ((c = getchar ()) != EOF)
{
if (c != ' ')
putchar (c);
else
if (prior != ' ')
putchar (' ');
prior = c;
}
}

执行方法为重定向
E:\...\debug>main.exe < main.c

有没有人看看这段还能不能简化一下

有没有人精读过《C程序设计语言》的啊
98440622 2003-07-22
  • 打赏
  • 举报
回复
西告 !
Zark 2003-07-22
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void TrimSpace(char* szTgt,char* szSrc)
{
if(!szSrc || !szTgt)
return;

bool bMore=false;
while(*szSrc)
{
if(bMore && ' '==*szSrc)
{
szSrc++;
continue;
}

bMore=' '==*szSrc;
*szTgt++=*szSrc++;
}

*szTgt='\0';
}

void main()
{
char szInput[]=" this is test";
char* szOutput=(char*)malloc(strlen(szInput)+1);
TrimSpace(szOutput,szInput);
printf("%s\n",szOutput);
delete []szOutput;
}

(以上程序未经测试,使用者后果自负,作者保留所有版权)
ghostmirror 2003-07-22
  • 打赏
  • 举报
回复
感觉用一个循环就可以实现。
pushser 2003-07-22
  • 打赏
  • 举报
回复
寻找空格,然后再寻找空格后面的空格,等到空格后面的空格后面不是空格的时候,就把他变成一个空格,够简单了吧??
要是还写不出来,就打屁股!
内容概要:本文围绕可变桨叶四旋翼无人机的规范控制与点对点运动模拟展开,重点研究优化推力分配策略在翻转动作中的应用与性能比较。通过Matlab代码实现,构建了四旋翼动力学模型,并设计了多种控制算法以实现精确的姿态调整与轨迹跟踪。研究对比了不同推力分配方案在执行高机动性翻转动作时的稳定性、能耗效率与响应速度,旨在提升无人机在复杂飞行任务中的动态性能与控制精度。该仿真研究为无人机飞控系统的设计与优化提供了理论依据和技术支持。; 适合人群:具备一定自动控制理论基础和Matlab编程能力,从事无人机控制、飞行器动力学或机器人系统研究的科研人员及研究生。; 使用场景及目标:① 实现四旋翼无人机在三维空间中的精确点对点运动控制;② 对比分析不同推力分配策略在执行翻转等高难度动作时的控制效果与能耗表现,优化飞行性能;③ 为无人机自主飞行、特技飞行及复杂环境下的机动控制提供算法验证平台。; 阅读建议:此资源以Matlab仿真为核心,建议读者结合相关控制理论知识,深入理解代码实现细节,重点关注动力学建模、控制律设计与推力分配模块。在学习过程中,应动手调试参数,复现文中翻转动作的仿真结果,并尝试拓展至其他复杂飞行任务,以加深对无人机控制机理的理解。

70,038

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧