2014-02-27 1 views
-4

누군가가 그것이

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--; 
    } 
} 
("올레"가되어야 "안녕하세요"예를 들어) 입력 된 문자열을 반대로 가정

이 코드를 통해보고 작동할지 여부를 확인하거나 할 수 없습니다 작동하지 않는 문자열을 역 C

+5

'이 코드를 살펴보고 작동하는지 여부를 확인하십시오. '- 실행 해 보았습니까? 당신의 제목은 당신이 해냈다는 것을 암시하며 작동하지 않습니다. 어떤 결과물을 얻고 있습니까? 디버거를 사용하여 코드를 단계별로 실행 했습니까? – Mike

+0

그것은 문자열을 뒤집어서, 당신은 그것을 뒤집을뿐입니다. –

+0

'i < length' -->'i BLUEPIXY

답변

8

정확하게 작동하도록 지시 한대로 작동합니다. 주기는 length/2이어야하며 length이 아니어야합니다.

+1

reverse와 repeat = nothing. –

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. 이것은 구현입니다.

희망이 도움이 될 수 있습니다.