简单的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中的字符
} 展开
#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中的字符
} 展开
2个回答
展开全部
#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';
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询