以下是相关代码:

#define _GNU_SOURCE
#define BUFFER_SIZE 1024

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(void) {
    while (1) {
        char* buffer;
        size_t size = 32;
        size_t line;
        line = getline(&buffer,&size,stdin);
        printf("%s\n",buffer);

        int commandList[line];
        int count = 0;
        while (strsep(buffer," ")) {
            commandList[count] = strsep(buffer," ");
            count++;
        }
    }
}

我在用minGW和Clang的代码块。
我知道我的一些代码目前没有做它应该做的,但我很确定它至少应该编译。我还收到一个警告:“函数'strsep'的隐式声明”。

最佳答案

strsep对于实现自己来说是微不足道的

#include <string.h>

char *strsep(char **stringp, const char *delim) {
    char *rv = *stringp;
    if (rv) {
        *stringp += strcspn(*stringp, delim);
        if (**stringp)
            *(*stringp)++ = '\0';
        else
            *stringp = 0; }
    return rv;
}

关于c - 使用Clang和MinGW获得错误“对'strsep'的 undefined reference ”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58244300/

10-11 20:57