我目前正在尝试迭代字符串以找到第一个空白区域。 我想将该空格前的所有字符复制到不同的字符串中。
在这里,我正在处理更多我的代码: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]被销毁,而不是例如包含ls -l
,它被替换为ll - l
。
我会提到更多的东西: lineArray是一个全局变量,我确实尝试使用strcpy,但它导致了同样的破坏,所以这就是我选择实现它的原因,最后一件事是我使用的是ubuntu。
有谁知道为什么这样做?
谢谢!
答案 0 :(得分: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