【发布时间】:2013-11-07 22:58:43
【问题描述】:
我正在尝试在帮助函数下方的帮助下删除前导/尾随空格字符。 编译时我收到警告:数组下标的类型为'char' [-Wchar-subscripts] 如何摆脱这个消息。
char *removeSpace(char *str )
{
char *end;
// Trim leading space
while(isspace(*str))
str++;
if(*str == 0) // All spaces?
return str;
// Trim trailing space
end = str + strlen(str) - 1;
while(end > str && isspace(*end)) end--;
// Write new null terminator
*(end+1) = 0;
return str;
}
【问题讨论】:
-
该错误并非来自您发布的代码。
-
当您收到警告或错误时,编译器会帮助您告诉您是哪个行号产生了问题。大多数情况下,编译器都能做到这一点。您有责任转到该行号并查看代码。如果您不明白,您需要向我们指出哪一行有问题,并提供所有相关代码,以帮助我们向您解释。
-
也许您使用
isspace的变体,它是一个索引数组的宏?如果是这样,这是一个糟糕的实现。 -
顺便说一句,
end > str是不需要的,因为你知道isspace(*str)是假的。
标签: c