我在修剪字符串末尾的空格时遇到了内存错误错误。任何人都可以帮我解决下面的代码。
码
char* trimfun(char *st) {
int i=0,j;
/* Trim spaces and tabs from end:*/
i=strlen(st)-1;
while ((st[i]==' ')||(st[i]=='\t')) {
i--;
}
if (i<(strlen(st)-1)) {
st[i+1]='\0';
}
return st;
// free (s);
// free (st);
}
由于 拉姆金
答案 0 :(得分:0)
如果整个字符串st
是空格怎么办?
在这种情况下while
循环:
while((st[i]==' ')||(st[i]=='\t')) { i--; }
不会在i==0
终止!
这可能是你的段错误的原因。
尝试:
while ( ( i >= 0 ) && ( (st[i]==' ') || (st[i]=='\t') ) ) ) {
i--;
}