흠 죄송하지만 함수 질문좀.
글쓴이: min2to / 작성시간: 금, 2006/01/27 - 2:37오전
#include <stdlib.h> #include <string.h> void reverse(char* s); int main() { char str[100]; fgets(str,sizeof(str), stdin); reverse(str); printf("Reversed string : %s",str); return 0; } void reverse(char* s) { int ca, i; int len=strlen(s); <-이부분이 정말로 이해가 않되서 strlen은 문자열 길이 반환 이라던데 여서의 의미를 모르겟어서여 (s)는 포인터에 선언된 s를 가르키는건가여? for (i=0; i<len/2; i++) { ca =s[i]; s[i]=s[len-i-2]; s[len-i-2] =ca; }
저쪽부분이 정말로 이해가 않되서 질문올립니다
책에선 기본상식? 이라 그런지 설명이 않되어있구여
아시는 고수님 도와주십시오.
감사합니다 다가오는 편안한 명절 보내십시오
Forums:
Re: 흠 죄송하지만 함수 질문좀.
char * 자료형은 문자열을 나타내는 자료형으로도 쓰입니다.
정확히 말하면, 문자열의 첫번째 글자를 기리키는 포인터죠.
strlen(s)는 문자열 s의 길이를 반환하는 함수입니다.
----
http://www.planetmono.org
아시다시피, char형은 문자 하나를 담기에 충분한 크기의 정수형인 데이
아시다시피, char형은 문자 하나를 담기에 충분한 크기의 정수형인 데이터형을 뜻합니다.
C에서의 문자열이란 개념은 맨 끝 문자가 nul(ASCII 코드로 0) 문자인 char형 배열입니다. 문자열을 char 데이터의 연속으로 취급하며, 문자열의 끝을 nul 문자로 표시하는 것입니다. 이것은 직관적으로 이해 가능하실 것입니다.
"str"이란 문자열은 메모리상에서는 다음과 같은 식으로 저장됩니다.
's' 't' 'r' '\0'
함수의 매개변수로 문자열을 넘겨받을 때는 문자열이 저장된 메모리 공간의 첫번째 주소값만 넘겨받으면 됩니다.
int strlen(const char *s);
문자열 전체를 읽고싶다면, s가 가리키는 공간에서부터 널 문자를 만날 때까지 계속 읽으면 됩니다.
그럼 질문하신 코드를 보겠습니다.
reverse란 함수는 char*형 포인터 주소값을 s란 이름으로 받습니다. s는 아마도 어떤 문자열의 첫번째 주소를 가리키고 있을 것입니다. strlen(s) 이란 코드는 s의 주소값을 그대로 strlen이란 함수로 넘겨주게 되고, strlen에서는 s가 가리키는 메모리 공간에 있는 문자열을 읽어들여 그 길이(널문자를 뺀 길이)를 리턴값으로 반환합니다.
정말 감사드립니다.!!
감사드립니다 정말 감사드립니다 복받으실꺼예여
모르는건 물어보라구 엄마 아빠가 알려주셧습니다
고수님,선배님들 도와주십쇼 독학하는 학생입니다
댓글 달기