0

Cの場合:2つの関数を書き込もうとしています。1つはユーザーから行(文字列)を取得し、それを別の関数に送信して、文字列の先頭から空白を削除します(存在する場合)。

「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 に答える