2016-02-25 42 views
-3
char *a="gizzzzz"; 
char *b="figantic"; 
void swap(char **ptr1,char **ptr2){ 
    char temp = **ptr1; 
    **ptr1 = **ptr2; 
    **ptr2 = temp; 
} 

的第一個字符,現在我希望讓我得到「fizzzz」和「巨大」 請幫助交換隻有兩根弦

+4

你的字符串是文字,你不能修改它們。 – Barmar

+0

你傳遞「指向指針的指針」而不是指針的原因是什麼? – Olaf

+0

我正在學習如何交換字符串,然後我碰到使用指針交換字符串指針 所以我想用它來解決我的問題 – Sam

回答

0

你傳入常量字符串,它們存儲在只交換第一個字符只讀內存。你需要分配這樣的字符串

char a[] = "gizzzzz", b[] = "figantic"; 
swap(a, b); 

void swap(char *a, char *b) 
{ 
    char tmp; 

    tmp = *a; 
    *a = *b; 
    *b = tmp; 
} 
+1

'swap(&a,&b);'應該是'swap(a,b); ' – kaylum

+0

謝謝大家 它的工作 – Sam

+0

但 交換(A,&b);交換(A,b);!?。 都正在同 我做錯了什麼 – Sam