一道c语言编程题,求解答
题目要求fun函数功能是用来删除字符串中的所有空格我这样做错在哪里,为什么运行之后系统总是提示错误...
题目要求fun函数功能是用来删除字符串中的所有空格
我这样做错在哪里,为什么运行之后系统总是提示错误 展开
我这样做错在哪里,为什么运行之后系统总是提示错误 展开
2个回答
展开全部
*s没有初始化,没有指向一块内存。
while(*str != ' ')当遇到空格的时候就直接退出while循环了,并不会去掉空格。
并且即使你进了while循环,你最后赋值的时候指针s已经到了最后了,也不会正确。
void fun(char* str)
{
char* s = (char*)malloc(sizeof(char) * strlen(str) + 1);
char *tmp = s;
char *tmpS = str;
memset(s, 0, strlen(str) + 1);
while(*str != '\0')
{
if(*str != ' ')
{
*tmp = *str;
tmp++;
}
str++;
}
memset(tmpS, 0, strlen(tmpS));
memcpy(tmpS, s, strlen(s));
free(s);
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询