Develop

[c] 문자열 str_shift 예제..

by hooni posted Apr 23, 2013
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

예제 코드

#include <stdio.h>
#include <string.h>

void  left_shift_string ( char data[] )
{
    int len = strlen(data);
    
    // left_shift 를 할 수 없는 경우...
    if ( len ==0  ) return;
    
    // data+1 위치부터 (len-1) 개의 문자열을 data 로 이동합니다.
    // 즉 data 가 "Hello" 라는문자열이라고 가정하면
    // 이동 전에는 배열이 [H] [e] [l] [l] [o] 와 같이 되지만.
    // 이동 후에는 배열이 [e] [l] [l] [o] [o] 와 같이 됩니다.
    // ello 부분이 왼쪽으로 이동했지요. ^^
    // 마지막에 있는 [o] 는 그 다음 코드에서 NULL 로 바뀌게 됩니다.
    memmove( data, data+1, len-1 ); // 또는 memcpy ( data, data+1, len-1 );
    
    data[ len-1 ] = '\0';
}

main()
{
    char data[] = { "Hello" };
    
    left_shift_string ( data );
    printf("%s\n", data );      // ello 출력
    
    left_shift_string  ( data );
    printf("%s\n", data );     // llo 출력
}