C 에서 문자열의 뒷부분 취하기...

익명 사용자의 이미지

안녕하세요

다름이 아니라, C 에서 만약 "name__kim" 이런 문자열이 있다고 합시다.
__ 이 구분자 이고요.
여기서 kim 만 취할 수 있는 방법은 없나요?
strncpy 와 같은 함수는 문자열의 앞부분에서 필요한 문자열을
취할 수가 있잖아요?
그런데 문자열의 뒤에 필요한 문자열을 취할 수 있는 함수나 방법이
있는지요?

strstr 같은 경우도 뒤에 kim 이라는 문자열이 올지 park 이라는 문자열이
올지 모르기 때문에 적용하기가 힘들것 같습니다.

익명 사용자의 이미지

구분자로 문자열을 쪼개주는 strtok()라는 함수가 있습니다.

익명 사용자의 이미지

ANSI C 라이브러리에 있는 strtok()은
문자열 버퍼의 내용을 건드리기 때문에
원래의 문자열 버퍼의 내용을 유지하고자 하려면
백업버퍼를 하나 더 두어야 하는 불편함이 있고,
동작시 내부적으로 static 변수를 사용하기 때문에
이중 루프 같은데에서 겹쳐서 호출하거나,
멀티스레딩에서 에러가 생기는 결정적인 단점이 있습니다.
(thread-safe한 strtok_r() 함수가 glibc에는 있지만,
ANSI C 호환이 아니므로 gcc가 아닌 다른 컴파일러에서는 쓸 수 없습니다.
가능한 한 ANSI C/C++ 호환으로 작성하시는 것이 좋습니다.)

C++ 사용자시라면, ANSI C++ string 클래스의,
stdstringfind_first_of()와 stdstringfind_first_not_of()
멤버 함수를 사용하여, 간단히 토크나이저(tokenizer)를 구현해서 쓰시든 가,
Boost C++ Library (http//boost.org)의 tokenizer 클래스를 써보실 것을 권합니다.

익명 사용자의 이미지

char buff[10]="name__kim";
char buff2[10];
int i,j=0;
for(i=0;i<10;i++)
if(buff[i]=='_' && buff[i+1]=='' &&buff[i+2]==''&& buf[i+3]=='_')
{ while((buff2[j]=buff[i+4+j])!='\0') j++;
break;
}

막노동입니다만.... 이렇게 할수도 있을거 같아서.....
문자열에 길이는 임으로 잡았는데 조정할수도.....
추출하는 뒤에 토큰 값이 온다면 그걸로 대입하면 되겠죠... while문에서
그럼...

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.