2014-02-27 87 views
-4

可能有人查看這些代碼,並檢查它是否應該工作或不C反向不工作

它應該扭轉(例如「你好」應成爲「2009東海生日賀」)

void stringReverse (char string1[]) 
{ 

    int length, i, j, k; 
    char tmp; 

    length = strlen(string1); 
    j = length - 1; 
    printf("Length: %i",length); 
    for (i = 0; i < length; i++) 
    { 
     tmp = string1[j]; 
     string1[j] = string1[i]; 
     string1[i] = tmp; 
     j--; 
    } 
} 
輸入的字符串,字符串
+5

'看看這段代碼,並檢查它是否應該工作或不運行 - 你試過嗎?你的頭銜暗示你做了,它不起作用,你會得到什麼輸出?您是否使用調試器來遍歷代碼? – Mike

+0

這是扭轉的字符串,你只是扭轉回來。 – 2014-02-27 15:08:51

+0

'i < length' -->'i BLUEPIXY

回答

8

它的工作原理與您所說的一樣。您的週期必須達到length/2而不是length

+1

反向和重複=無。 –

0
char* strrev(char* s) { 
    char* h = s;  
    char* t = s; 
    char ch; ` 
    while(*t++){}; 
    t -= 2; 
    while(h < t){ 
    ch = *h; 
    *h++ = *t; /* h向尾部移動 */ 
    *t-- = ch; /* t向頭部移動 */ 
    } 
    return(s); 
} 

功能:strrev。這是實施。

希望這可以幫助你。