C언어 문자열 거꾸로
조회수 1544회
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char *change(char *m) {
int len = strlen(m);
char *change = (char *)malloc(len + 1);
for (int i = len - 1; i >= 0; i--) {
change[len - 1 - i] = m[i];
}
change[len] = 0;
return change;
}
int main() {
char m[100];
printf("영문자 입력 : ");
gets_s(m, 100);
printf("변환된 문자 : %s\n", change(m));
}
이 문자열을 거꾸로 하는 코드에서
char *change(char *m)
이 부분에 change랑 m앞에 *이 붙는 이유가 궁금합니다.
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
딱 답만 적으면 문자 포인터로써 "문자열의 시작 메모리 주소"값입니다.
c언어에서 "문자열" 이라는 타입은 없습니다.
그냥 문자 1개의 데이터 타입이 char 입니다.
문자열이라는 것은 문자들이 일렬로 늘어선 상태 즉 문자들의 배열이 문자열인겁니다.
char m[100]
표현이 문자 100개가 들어가는 배열 즉 문자열의 선언입니다.그러면
char *
은 무엇인가...문자의 포인터로 보통 문자열의 시작 메모리주소값을 갖습니다.즉 파라미터로 문자 배열(char m[100])을 넘겨주고 그 주소를 다시 받는겁니다.
댓글 입력