为了账号安全,请及时绑定邮箱和手机立即绑定

下面内容通过调用函数trimspace(),实现去掉字符串的前空格和尾空格,请问哪里错了呀?

下面内容通过调用函数trimspace(),实现去掉字符串的前空格和尾空格,请问哪里错了呀?

神不在的星期二 2021-12-05 10:06:55
#include<string.h>main(){char str[100];void trimspace(char *);gets(str);trimspace(str);puts(str);}/*------------Found Mistake Below------------*/void trimspace(char *p){char *q;if(*p!='\0')q=strlen(p);elsereturn;/*------------Found Mistake Below------------*/for(;*q==' ';q--);*q='\0';for(q=p;*q==' ';q++);strcpy(p,q);return;}
查看完整描述

1 回答

?
人到中年有点甜

TA贡献1895条经验 获得超7个赞

#include <stdio.h>
#include <stdlib.h> //头文件别忘了加
#include <string.h>

void trimspace(char *);// 函数声明放在main函数上面

int main(void)//main函数最好有返回值
{
char str[100];
scanf("%s",str);//gets 函数不要使用,已经是作废的函数了,很危险
trimspace(str);
puts(str);
return 0;
}

void trimspace(char *p)
{
char *q;
if(*p!='\0')
q=p+strlen(p);//指针+偏移量
else
return;
for(;*q==' ';q--);
*q='\0';
for(q=p;*q==' ';q++);
strcpy(p,q);//最好用strncpy,此处你自己改吧
return;
}

我给你修改好了,我在linux gcc环境跑过了,一个警告都没有报 你试试吧



查看完整回答
反对 回复 2021-12-07
  • 1 回答
  • 0 关注
  • 238 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信