2011-05-02 117 views
0
int sk03(char * a) //DELETE! DELEEEEETE! 
{      //(Or "Exterminate! EXTERMINAAAAAATE!" if that's your thing.) 
    int b = sk00(a); 
    int c = 0; 
    while(a[b] != '!') 
    { 
     a[c] = a[b]; 
     c++;b++; 
    } 
    cout << a << "\n"; 
    int your_mom = 0; 
    return your_mom; 
} 

int main() 
{ 
    char * str = "``sk`sk!"; 
    return sk03(str); 
} 

此方法適用於當您要將整個字符串傳遞給函數,但如何將字符串的後半部分傳遞給sk03?我需要創建一個完整的新陣列嗎?傳遞字符作爲參數

+0

其中是sk00()的定義? – 2011-05-02 09:30:46

+0

你想做什麼?出了什麼問題? – fredley 2011-05-02 09:31:44

+0

從你想要的位置開始傳球。 (即'sk03(str + n)'),其中'n'是從你的「下半部分」起始字符開始的索引。 – 2011-05-02 09:32:25

回答

1

不,你只是傳遞一個指針到你想要的元素:

char a[100]; 
sk03(a + 50);  // call function passing second half of the array 
+0

雖然D給了我一個段錯誤D:我試過了 – 2011-05-02 09:31:52

+0

哦,等等,不是我把它定義爲char a =「''sk'sk!」 – 2011-05-02 09:33:37

+0

@Robert Lennon:是的,因爲你需要首先用某些角色初始化「a」.. – Heisenbug 2011-05-02 09:34:03

1

傳遞它像

char * str = "``sk`sk!"; 
return sk03(&str[4]); 
1

例如,你可以修改你的代碼做這樣的事情:

char str[STRING_LENGTH] = "``sk`sk!"; 
return sk03(&str[3]); 
相關問題