2012-12-24 62 views
0

: 林試圖寫2層的功能之一是從用戶線(字符串)獲取和它從開始發送到除去另一功能(如果存在)空白字符串。兩個功能 - 在C得到的炭和工作於指針

我試圖使「remove_space」功能工作的指針,以使其指向繼續,而沒有空間的字符串改變它。

例如: 可以說用戶類型: 「hi123」 和我保存這個字符串中的一些指針 我想在「hi123」送這個指針「remove_space」功能,使指針指向不間距開始...

現在..我有一些問題,從我所看到的指針。 這是我寫的:

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); 
} 
+0

一旦您接受了以前的答案,請考慮將其分成兩個問題。您已經有兩個功能,並且應該能夠分別處理每個功能。 – Useless

回答

2

您還沒有分配內存來存儲字符串st1

char st1[30]; 

此外,您在這裏不需要char**

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

Downvoters?這是錯的嗎? – md5

+2

當然'remove_space'需要接收'char *'。否則,我不明白downvote。 –

+0

@DavidHeffernan:對,'char **'在這裏沒用。 – md5