코드를 바로 올려드리진 못하지만...
"홍길동입니다."라는 문자열의 시작지점을 배열의 위치나
포인터로 알 수 있다면 그 지점부터 해서 임의의 값을 덮어씌울 수 있지 않을까요...
ex) char *str = "hello world."에서 "world."라는 문자열이 존재한다면 이것을 char *path = "tempo"로 바꾸고 싶다.
-> world.의 시작 문자인 w의 배열 위치(str[6])를 체크
-> 해당 배열위치부터 임의의 값을 덮어씌우기.
물론 대치되는 문자열의 길이가 기존의 문자열보다 짧다면
뒷 부분의 문자열과 그대로 겹치는 문제점이 있습니다만...
제가 드릴 수 있는 아이디어는 이 정도겠네요...^^;
char *haystack = "long string
char *haystack = "long string ...";
char *needle = "abcde";
char *p = strstr(haystack, needle);
if (p)
printf("%s", p + strlen(needle));
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
Korean Ver: http://cinsk.github.io/cfaqs/
감사드립니다,.
감사합니다.해결하였습니다.
그런데요. 하나만 더 질문해도될까요
만약에 c언어에서 특정 부분부터의 문자열
예를들면,
안녕하세요. 홍길동입니다.
이런부분이 있으면 "홍길동입니다." 이 부분만을 다른 문자열로 어떻게 대체할 수 있을지, 잘모르겠어서요.
char *data 여기에는 본 내용의 데이터가 들어있고.
char *p 여기에데이터는 "홍길동입니다" 이것을 대체할 다른 내용을 가지고 있습니다.
어떻게 대체해야할지 좀 알고싶습니다.
코드를 바로 올려드리진
코드를 바로 올려드리진 못하지만...
"홍길동입니다."라는 문자열의 시작지점을 배열의 위치나
포인터로 알 수 있다면 그 지점부터 해서 임의의 값을 덮어씌울 수 있지 않을까요...
ex) char *str = "hello world."에서 "world."라는 문자열이 존재한다면 이것을 char *path = "tempo"로 바꾸고 싶다.
-> world.의 시작 문자인 w의 배열 위치(str[6])를 체크
-> 해당 배열위치부터 임의의 값을 덮어씌우기.
물론 대치되는 문자열의 길이가 기존의 문자열보다 짧다면
뒷 부분의 문자열과 그대로 겹치는 문제점이 있습니다만...
제가 드릴 수 있는 아이디어는 이 정도겠네요...^^;
이렇게 생각해볼 수 있군요.
이런 식으로 짜는 방법도 있습니다. 문자열의 길이에 대해서는 충분히 개선 가능하니 직접 해보세요.
저는 이렇게 생각했습니다.
답변감사합니다.
많은도움이됬습니다.!
댓글 달기