简单的C语言指针问题哈!为啥当输入的字符中出现有空格,空格后面的字符就不被读取了?

#include<stdio.h>#include<stdlib.h>voiddel_space(char*);//把用户输入字符串中的空格去掉,并打印出来,可以循环接受... #include<stdio.h>
#include<stdlib.h>
void del_space(char *);//把用户输入字符串中的空格去掉,并打印出来,可以循环接受输入,直到用户输入空行为止
int main(void)
{
char s[81];
do
{
puts("请输入一些字符:");
gets_s(s);
puts("OK,我们帮你去掉了空格,记得点赞哦:");
del_space(s);//调用去空格函数
puts(s);
} while (*s!='\0');

system("pause");
return 0;
}
void del_space(char *s)
{
int i = 0;
char s_save[81] = {0};//用于顺序存储s中空格之外的字符
while (*(s + i) != '\0')
{
if (*(s + i) != ' ')//不是空格就存储
s_save [i] = *(s + i);
i++;
}
for (int j = 0; j < i; j++)
*(s + j) = s_save[j];通过指针更新s中的字符
}
展开
 我来答
Aifuday
2017-12-05 · TA获得超过408个赞
知道小有建树答主
回答量:479
采纳率:66%
帮助的人:54.6万
展开全部
#include<stdio.h>
#include<stdlib.h>
void del_space(char *);//把用户输入字符串中的空格去掉,并打印出来,可以循环接受输入,直到用户输入空行为止
int main(void)
{
char s[81];
do
{
puts("请输入一些字符:");
gets(s);
puts("OK,我们帮你去掉了空格,记得点赞哦:");
del_space(s);//调用去空格函数
puts(s);
} while (*s!='\0');

return 0;
}
void del_space(char *s)
{
int i = 0;
int j = 0;
char s_save[81] = {0};//用于顺序存储s中空格之外的字符
while (*(s + i) != '\0')
{
if (*(s + i) != ' '){//不是空格就存储
s_save[j] = *(s + i);
j++;
}
i++;
}

for (int j = 0; j < i; j++)
*(s + j) = s_save[j];//通过指针更新s中的字符
}

逻辑有个小问题,上边是修改代码,再增加一个临时变量j记录非空格字符在s_save数组的下标

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2017-12-05
展开全部
#include <stdio.h>
#include <stdlib.h>

void del_space(char *s);
 
int main(void)
{
char s[81];
do
{
puts("请输入一些字符:");
gets(s);
puts("OK,我们帮你去掉了空格,记得点赞哦:");
del_space(s);//调用去空格函数
puts(s);
} while (*s!='\0');
system("pause");
return 0;
}
void del_space(char *s)//不需要定义其它字符数组 
{
int i = 0,j=0;
while (*(s + i) != '\0')
{
    if(s[i]!=' ')
    {
        s[j++]=s[i];
     }
  i++;
}
s[j]='\0';
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式