strtok 사용에 대한 질문 입니다.
새우깡
질문 제목 : strtok 사용에 대한 질문 입니다.배열을 사용할땐 상관 없었으나 포인터를 사용하니 에러가 발생 합니다. 에러 설명과 해결 방법 부탁 드립니다.질문 내용 :
#includestdio.h
#includestring.h
#includestdlib.h
void sideresult(char *line, int r2);
int main(void)
{
char line1[100] = the secret to friendship is being a good listener.;
sideresult(line1, 2); //line1 의 2번째 단어 출력.
return 0;
}
void sideresult(char *line, int r2)
{
char *mean = null;
int loop = 0;
printf(test:%s\n, line); //line 값이 제대로 넘어오나 확인.
mean = strtok(line, );
for(loop=1; loopr2; loop++)
{
mean=strtok(null, );
if(mean == null)
{
printf(관련 단어는 존재하지 않습니다.\n);
exit(1);
}
}
printf(%s\n, mean);
}
위와 같이 실행하면 2번째 단어가 정상적으로 출력 되나
굵게 표시된 부분을char *line1 = the secret to friendship is being a good listener.;
와 같이 고치면mean = strtok(line, ); 부분에서 오류가 발생하는거 같습니다.
그냥 생각 하기로는..
배열을사용할때는 배열의 인덱스 위치에 스페이스가 있으면 바로 그 위치를 알려줘서 strtok가 사용 가능 하지만
포인터일 때는.. 주소를 참조 하니까 스페이스의 위치를 바로 참조하지 못해서 그런거 같은데...이게 맞는지...
에러 나는 이유와 해결 방법 부탁 드립니다 ~(포인터로 해결 방법)
-
해골
printf(\%s\\n\
-
로다
strtok가 수정을 하게 되버리는구나..
빠른 답변 감사합니다~ -
봄해
strtok 함수가 원래의 문자열을 수정하게 되므로 에러가 발생하게 됩니다.
\ \로 사용된 구분자를 찾게 되면 그곳에 0을 넣게 됩니다.
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2694450 | while문질문입니다. (1) | 허리품 | 2025-05-11 |
2694420 | C언어 질문할게요(유니코드,자료형,버퍼,캐스트연산자) | 은새 | 2025-05-11 |
2694370 | 내일까진데 함수호출 제발 도와주세요!!!!!!!!!11 | 들찬 | 2025-05-10 |
2694339 | putchar()의 괄호 안에 int c=10;로 전에 선언된 c를 넣으면 안되는 이유에서 제가 생각한 것이 그 이유가 되는지 확인하고 싶습니다. (3) | 미르 | 2025-05-10 |
2694316 | 이 코드 어디가 잘못되었는지 고수분들 ㅠㅠ (2) | 나빛 | 2025-05-10 |
2694285 | 언어 공부하는 과정 좀 추천해주세요! (1) | 아빠몬 | 2025-05-09 |
2694258 | 카운터.. 질문입니다. (4) | 하늘빛눈망울 | 2025-05-09 |
2694229 | 단순한 질문이요 (8) | 여름 | 2025-05-09 |
2694202 | 용돈을 가지고 할 수 있는 일을 여러가지로 출력하는 방법 좀 알려주세요! (2) | 미나 | 2025-05-09 |
2694145 | 화면깜빡임을 없애고 싶은데요... (1) | 어서와 | 2025-05-08 |
2694069 | unsigned 질문입니다. | 힘차 | 2025-05-07 |
2694012 | 전공 비전공자 개발자 (10) | 말글 | 2025-05-07 |
2693984 | 오버로딩이 무엇인가요? (2) | 헛매질 | 2025-05-07 |
2693956 | PlaySound재생이 안됩니다!(C에 음악넣기) | 지존 | 2025-05-06 |
2693928 | &와 *의 사용에 관한 명확한 이해 | 제나 | 2025-05-06 |
2693903 | 반복문 설명좀요 ㅠㅠ (2) | 란새 | 2025-05-06 |
2693869 | stdio.h 는 왜 쓰는건가요? (1) | 큰꽃들 | 2025-05-06 |
2693842 | 포인터 변수의 주소값끼리 더하는 것에 대해서 질문드립니다. (1) | 진솔 | 2025-05-05 |
2693811 | 소수 출력;;;; | 화이트캣 | 2025-05-05 |
2693788 | 이런 함수는 없나요? (3) | 앤드류 | 2025-05-05 |