0

我一直在寻找一种删除前导空格的标准方法,并且我发现了一种使用指针和的非常简单的方法isspace(),但是我们的教授不允许我们使用该<ctype.h>库。下面的工作吗?

char LeadingSpace(char *line) {
    while (line[0] == ' ') {
        line++;
    }
    return line;
}

我是 C 的新手,所以不完全确定指针是如何工作的,但是如果我每次找到前导空格时都移动指针,那么我只需要检查line[0],对吗?

4

2 回答 2

1

是的 - 检查line[0] == ' '很好:

但是这条线

char LeadingSpace(char *line) {

应该

char* LeadingSpace(char *line) {

当您返回一个字符指针时

于 2015-12-12T19:03:34.207 回答
0

尝试这个

char* LeadingSpace(char *line) {
    while (line[0] == ' ' || line[0] == '\t' || line[0] == '\n' || line[0] == '\r') {
        line++;
    }
    return line;
}

或者这个使用 string.h 标头

char* LeadingSpace(char *line) {
    while (strchr(" \t\r\n", line[0])) {
        line++;
    }
    return line;
}
于 2015-12-12T19:10:50.670 回答