0

在 C 中:我尝试编写 2 个函数,一个是从用户那里获取一行(字符串)并将其发送到另一个函数,该函数从字符串的开头删除(如果存在)空格。

我试图使“remove_space”函数在指针上工作,通过使其指向没有空格的字符串的继续来改变它。

例如:假设用户键入:“hi123”,我将此字符串保存在某个指针中,我想将此指针发送到“remove_space”函数并使指针指向“hi123”而不开始间距...

现在..我对我所看到的指针有一些问题。这就是我写的:

void remove_space(char** st1)/**function to remove space**/
{
    char* temp_st = strtok(st1, " ");
    strcpy(st1, temp_st);
}

void read_comp(void)
{
    printf("read_comp FUNCTION\n");
    char* st1; /**read the rest of the input**/ 
    fgets(st1,30,stdin);
    remove_space(st1);
    printf("%s\n",st1);
}
4

1 回答 1

2

您尚未分配内存来将字符串存储在st1.

char st1[30];

另外,这里不需要char**

void remove_space(char *st1)
{
    char *temp_st = strtok(st1, " ");
    strcpy(st1, temp_st);
}
于 2012-12-24T13:24:19.210 回答