设计一个c语言程序:输入一个带有空格的字符串,比如i love you要求删除字符串中的所有空格显示

iloveyou.只能用三个函数scanfprintfgets要能用visualc++打开,最好写上每个语句的意义... iloveyou .只能用三个函数scanf printf gets 要能用visual c++打开,最好写上每个语句的意义 展开
 我来答
test_pop
2013-06-07 · TA获得超过376个赞
知道小有建树答主
回答量:332
采纳率:100%
帮助的人:240万
展开全部
 #include <stdio.h>
int main(void)

 char str[80] = {0};      /*定义一个字符串*/        
 char *p, *q;       /*定义两个字符指针*/
 printf("Please input a string: ");
 gets(str);        /*用scanf("%s",str)会遇到空格就断开了*/ 
 printf("str = %s\n", str);
 p = str;        /*指针p指向字符串str*/
 while(*p != '\0')      /*判断,不是字串结束符就继续*/  
 {
  if(*p == ' ')      /*判断是空格执行后面操作*/   
  {
   q = p;       /*重新定位指针q的位置*/
   while(*q != '\0')    /*用以剔除空格*/
   {
    *q = *(q+1);    /*把后一个字符覆盖前一个字符,把空格覆盖掉*/ 
    q++;
   }
  }
  p++;
 }
 printf("str = %s\n", str);    
 return 0;
}

God风行者
推荐于2016-05-11 · TA获得超过518个赞
知道小有建树答主
回答量:127
采纳率:100%
帮助的人:110万
展开全部
#include<stdio.h>
void main()
{char string[100];\\*定义字符串数组
int i;
printf("请输入要处理的字符串:");
gets(string);
for(i=0;string[i]!='\0';i++)\\**for循环语句并非函数,所以我用了
{if(string[i]!=32)\\**32是空格键的ascll码
printf("%c",string[i]);
}printf("\n");
}
可以提示你一下,你可以尝试一下link函数。
而且我这个是最简约的答案了
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
White_MouseYBZ
推荐于2018-03-29 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6684万
展开全部

把输入的字符串既作为源又作为目标,设立int型变量i为源下标记数,j为目标下标记数;由源向目标按字符依次拷贝,当目标接收到空格时下标变量j停止增量,最后目标收到'\0'后结束。举例如下:

//#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
int main(void){
    char str[500];
    int i=0,j=0;
    printf("Please enter a string...\nstr=");
    gets(str);
    while(str[j]=str[i++])
        if(str[j]!=' ') j++;
    printf("The new string is:\n%s\n",str);
    return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-06-07
展开全部
#include<stdio.h>
int main(void)
{
char str[80];/*定义一个字符串*/
int i,j;/*两个临时变量,计数用*/
gets(str);/*用scanf("%s",str)会遇到空格就断开了*/
for(i=0;str[i]!='\0';i++)/*判断,不是字串结束符就继续*/
if(str[i]==' ')/*判断是空格执行后面操作*/
for(j=i;str[j]!='\0';j++)/*用以剔除空格*/
str[j]=str[j+1];/*把后一个字符覆盖前一个字符,把空格覆盖掉*/
printf("%s\n",str);/*格式输出*/
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
leichenfeng
2013-06-07 · TA获得超过757个赞
知道小有建树答主
回答量:425
采纳率:0%
帮助的人:482万
展开全部
#include <stdio.h>
#include <string.h>
int main()
{
int i,j,len;
char a[1000];
gets(a);
len=strlen(a);
for(i=0;i<len;i++){
   if(a[i]!=' ')
   putchar(a[i]);
}
putchar('\n');
}

首发,请采纳

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式