for(int i=0;i<20;i++)
{
//status[0]=msg[4];
status[i]=msg[i+4];
}
이렇게 했는데
start end 위치 적고 그냥 추출하는 함수 없나해서요
msg배열의 4~23 까지 추출해서 status에 넣으려합니다.
자바 생각하고 함수 찾아 봤는데 잘못찾겠네요
C언어의 문자 배열을 쓰시면서 Java의 String을 연상하시면 영 좋지 않습니다. 그런 목적이라면 차라리 C++의 string을 알아보시길.
String
string
어쨌든, C 라이브러리 함수를 이용하면 가능해지긴 합니다.
strncpy(status, msg + 4, 20); status[20] = '\0'; // status가 NULL-Terminated되어야 한다면 반드시 이렇개 해 주어야 합니다. // 그 경우엔 당연히 status 배열의 크기가 21 이상이어야 하고요.
감사합니다. 그럼 자바는 잊어버리고 C언어 잘하려면 어떤 접근이 좋을까요?
이 경우에는 memcpy 가 더 적당할것 같습니다. strncpy 를 쓴다면... msg가 null로 끝나는 문자열이라는 정보도 없지만, null을 만나는 순간 복사가 일찍 종료되어 버릴테니까요.
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
C언어의 문자 배열을 쓰시면서 Java의
C언어의 문자 배열을 쓰시면서 Java의
String
을 연상하시면 영 좋지 않습니다.그런 목적이라면 차라리 C++의
string
을 알아보시길.어쨌든, C 라이브러리 함수를 이용하면 가능해지긴 합니다.
감사합니다.
감사합니다.
그럼 자바는 잊어버리고
C언어 잘하려면 어떤 접근이 좋을까요?
이 경우에는 memcpy 가 더 적당할것 같습니다.
이 경우에는 memcpy 가 더 적당할것 같습니다.
strncpy 를 쓴다면...
msg가 null로 끝나는 문자열이라는 정보도 없지만,
null을 만나는 순간 복사가 일찍 종료되어 버릴테니까요.
댓글 달기