猿问

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

#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);
else
return;
/*------------Found Mistake Below------------*/
for(;*q==' ';q--);
*q='\0';
for(q=p;*q==' ';q++);
strcpy(p,q);
return;
}

神不在的星期二
浏览 253回答 1
1回答

人到中年有点甜

#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);//指针+偏移量elsereturn;for(;*q==' ';q--);*q='\0';for(q=p;*q==' ';q++);strcpy(p,q);//最好用strncpy,此处你自己改吧return;}我给你修改好了,我在linux gcc环境跑过了,一个警告都没有报 你试试吧
随时随地看视频慕课网APP
我要回答