在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);
}

最佳答案

您尚未分配用于在st1中存储字符串的内存。

char st1[30];


另外,您在这里不需要char**

void remove_space(char *st1)
{
    char *temp_st = strtok(st1, " ");
    strcpy(st1, temp_st);
}

关于c - 两个功能-获取字符并在指针上工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14021980/

10-09 20:47