2

我目前正在尝试遍历字符串以找到第一个空格。我想将该空格之前的所有字符复制到不同的字符串中。

在这里,我要处理更多我的代码:lineArray 是全局的,并且由我没有复制的不同函数填充。

char *lineArray[16];

int startProcesses(int background) {

    int i = 0;
    int var = 0;
    int pid;
    int status;
    int len;
    char copyProcessName[255];

    while(*(lineArray+i) != NULL) {


    len = strlen(lineArray[i]);

    for (var = 0; var < len; ++var) {
        if(lineArray[i][var] != ' ') {
            copyProcessName[var] = lineArray[i][var];
        } else {
            break;
        }
    }

我知道这还没有完成,我缺少'\ 0',但在此之前我在调试时注意到,在编译器第一次尝试copyProcessName[var] = lineArray[i][var];分配后,lineArray[i] 中的整个字符串被破坏,而不是 for包含ls -l它的示例被替换为ll - l.

我会再提一些细节:lineArray 是一个全局变量,我确实尝试过使用 strcpy,但它造成了同样的破坏,所以这就是我选择实现它的原因,最后一件事是我使用的是 ubuntu。

有谁知道为什么要这样做?

谢谢!

4

1 回答 1

0

我目前正在尝试遍历字符串以找到第一个空格。

凉爽的。

char s[] = "line with spaces";
char *p = strchr(s, ' '); // pointer to the first WS, if you need it
ptrdiff_t n = p - s; // or its position within the string, if that's what you're looking for
于 2013-04-26T16:30:55.550 回答