【发布时间】:2012-02-25 05:59:17
【问题描述】:
我有一个函数,它返回前 n 个字符,直到到达指定的字符。我想传递一个ptr来设置字符串中的下一个单词;我该如何做到这一点?这是我当前的代码。
char* extract_word(char* ptrToNext, char* line, char parseChar)
// gets a substring from line till a space is found
// POST: word is returned as the first n characters read until parseChar occurs in line
// FCTVAL == a ptr to the next word in line
{
int i = 0;
while(line[i] != parseChar && line[i] != '\0' && line[i] != '\n')
{
i++;
}
printf("line + i + 1: %c\n", *(line + i + 1)); //testing and debugging
ptrToNext = (line + i + 1); // HELP ME WITH THIS! I know when the function returns
// ptrToNext will have a garbage value because local
// variables are declared on the stack
char* temp = malloc(i + 1);
for(int j = 0; j < i; j++)
{
temp[j] = line[j];
}
temp[i+1] = '\0';
char* word = strdup(temp);
return word;
}
【问题讨论】:
-
word驻留在堆栈上,但不是word指向的数据。
标签: c string pointers char malloc