문자열 일부분을 원하는 문자로 치환하는 프로그램인데
에러창이 떠대서 질문드립니다.
아래가 실행결과고 저런 에러창이 문자열 변수마다 한번씩뜹니다.
_s가 붙는 문자열 처리 함수들에서 발생하는거같은데 처리할 방법을 모르겠습니다.
또, 19,20번째줄 처리결과도 문제인데 실행창에서 3번째줄부분인데 after 문자열만 붙이면 나오질 않습니다... tmp변수로 바꿔보면 또 잘나옵니다...;
그리고 실행결과 마지막줄에 문자 하나가 ?가 되버리는데 한번만 봐주시면 감사하겠습니다.!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | #include <iostream>#include <cstring>using namespace std; int main() { char string[100] = { "abcdefghi" }, before[100] = { "cd" }, after[100] = { "q" }, tmp[100] = { "" }, *beforepoint; int beforelen=0,afterlen=0; beforelen = strlen(before); afterlen = strlen(after); beforepoint = strstr(string, before); strcat_s(tmp,200, beforepoint+beforelen); cout << string << endl; cout << tmp << endl; strcpy_s(beforepoint, 200, after); cout << string << endl; strcpy_s(beforepoint+afterlen, 200, tmp); cout << string << endl; } |