IT 이야기로 이동 된 게시물입니다.


http://talkit.tistory.com/77

2009/02/02 20:39 2009/02/02 20:39

Posted by 가야태자

,
Response
No Trackback , No Comment
RSS :
http://dulihana.cafe24.com/blog/rss/response/73

사용자 삽입 이미지

어제와 오늘 C 연습을 하면서 외부 라이버러리가 필요 했습니다.

Makefile에 보시면

LIBS=이라는 부분이 있습니다.

여기는 보통 -L /usr/lib -lz -ldl

뭐 이런식의 문자가 쓰여져 있습니다.

LIBS= -L/usr/lib -lz -ldl

이런식으로 되어 있는게 있습니다.

그런데 CDT에서는 저것을 넣으시려면 

Project >> Properties >> C/C++ Build >> Settings >> Tool Settings >> Cygwin C Linker 에 보시면 있습니다. 위 그림을 참조 하시면 됩니다.

우선 -L 은 아래에 있는 + 아이콘을 통해서 입력 합니다.

단 -L은 붙이실 필요 없습니다. 자동으로 붙습니다.

마찬가지로 소문자 -l은 위의 + 아이콘을 이용해서 입력 하실 수 있습니다.

오늘 Xml 예제를 실행 하면서 libxml2가 필요해서

-lxml2를 추가해서 사용했습니다.

P.S

CDT에 대해서 조금씩 알아가면 알아 갈 수록 정이 드네용 ^^;;

2008/07/22 23:17 2008/07/22 23:17

Posted by 가야태자

, , ,
Response
No Trackback , No Comment
RSS :
http://dulihana.cafe24.com/blog/rss/response/225

PHP - substr - 문자열 자르기

여러분들은 특정한 문자열을 자를 경우가 있을 겁니다.

문자열을 자른 다는 것은

Hello 라는 문자열이 있을때

Hel 까지만 나타내는 경우 입니다.

예를 들어 홈페이지를 제작할때 메인 페이지 공지 사항의 경우

너무 길경우 짤라서 보여 줍니다.

안녕하세요 두리하나 사이트를 오픈 했습니다.

라는 긴문장 중에서 한글 12자만 뽑는거죠...

그럴 경우에 쓰는 함수가 바로 substr 명령어 입니다.

사용 법은

substr(문자열,시작,끝)

입니다.

그러니깐 위의 경우는

substr("안녕하세요 두리하나 사이트를 오픈 했습니다.", 0, 24);

이렇게 하시면 됩니다.

한글 12자는 24 바이트 임으로 24를 써 주셔야 합니다.

그런데 저 위의 경우는 한글이 깨질 수 있습니다.

그래서 보통은 아래와 같이 함수를 제작해서 사용 합니다.

-----정의 함수 시작-----

#문자열을 자르는 함수


function is_hangul($char) {
  # 특정 문자가 한글의 범위내(0xA1A1 - 0xFEFE)에 있는지 검사
  $char = ord($char);

  if($char >= 0xa1 && $char <= 0xfe)
  return 1;
}

function is_alpha($char) {
  $char = ord($char);

  if($char >= 0x61 && $char <= 0x7a)
  return 1;
  if($char >= 0x41 && $char <= 0x5a)
  return 2;
}

function cut_string($s, $l) {
  if(strlen($s) <= $l && !eregi("^[a-z]+$", $s))
  return $s;

  for($i = $l; $i >=1; $i--) {
     # 끝에서부터 한글 byte수를 센다.
     if(is_hangul($s[$i-1])) $hangul++;
     else break;
  }
 
  if ($hangul) {
     # byte수가 홀수이면, 한글의 첫번째 바이트이다.
     # 한글의 첫번째 바이트일 때 깨지는 것을 막기 위해 지정된 길이를 한
     # 바이트 줄임
     if ($hangul%2) $l--;
    
     $s = chop(substr($s, 0, $l));
  }
  else { # 문자열의 끝이 한글이 아닐 경우
     for($i = 1; $i <= $l; $i++) {
         # 대문자의 갯수를 기록
         if(is_alpha($s[$i-1]) == 2) $alpha++;
         # 마지막 한글이 나타난 위치 기록
         if(is_hangul($s[$i-1])) $last_han=$i;
     }
    
     # 지정된 길이로 문자열을 자르고 문자열 끝의 공백 문자를 삭제함
     # 대문자의 길이는 1.3으로 계산한다. 문자열 마지막의 영문 문자열이
     # 빼야할 전체 길이보다 크면 초과된 만큼 뺀다.
     $capitals = intval($alpha * 0.5);
     if ( ($l-$last_han) <= $capitals) $capitals=0;
     $s = chop(substr($s, 0, $l - $capitals));
  }

  return $s;
}

-------------정의 함수 끝---------

사용하실때는 그냥 아래 함수만 사용하시면 됩니다.
하지만, 실제로는 맨마지막 글자를 뽑아서 한글인지 아닌지 계산 합니다.
그리고 한글일경우 2바이트가 되도록 처리해 줍니다. 물론 영어일 경우는 그대로 두구요.
cut_string($s, $l)


cut_string("안녕하세요 두리하나 사이트를 오픈 했습니다.", 24);

일반적으로 맨처음에 시작해서

글자 수만 제한 하는 함수를 사용했습니다.

여러분도 좋은 함수를 만드시면 저한테 좀 주세요. ^^;;

2007/04/05 12:20 2007/04/05 12:20

Posted by 가야태자

, ,
Response
No Trackback , No Comment
RSS :
http://dulihana.cafe24.com/blog/rss/response/76


블로그 이미지

이곳은 가야태자의 일상생활, 사진, 리눅스, 자유, 개발언어, 데이타베이스 등에 대해서 이야기 하는 공간입니다.

- 가야태자

Archives

Calendar

«   2009/11   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30          

Site Stats

Total hits:
252526
Today:
95
Yesterday:
174