문자 배열을 입력받아 문자열의 길이를 출력하는 프로그램을 작성하시오. 문자열의 길이를 구할 때는 문자 배열의 원소를 가리키는 포인터를 이용하시오.
라고 쓰여 있는데요. 보시다시피 포인터 부분입니다. 일단은 문자열의 길이를 출력하긴 하는데... 이게 문제에 맞는 코드인지는 잘 모르겠네요;;
문자 배열의 원소를 가리키는 게 뭔 말인지... 하면 할수록 부족하다는 게 느껴집니다. 프로그래밍은... 개울가에 발만 담그고 있는 정도네요
#include <stdio.h>
int main(){
char arr[100]={0, };
char *p=&arr[0];
int i=0;
scanf("%[^\n]",&arr);//gets를 써야하나?//
while(arr[i])//arr[i]에 들어있는게 '\0'일때까지 반복함//
i++; p++;//i값과 p값이 증가함.//
printf("array length : %d\n",i);//이게 맞나?;;//
return 0;
}
문자열도 하나의 집합이니까 예를 들어 abcde란 문자열은 즉 {a, b, c, d, e}란 행렬이나 마찬가지고 각각 a b c d e 가 원소가 대겟지
음... 거기까진 했는데 그걸로 문자열의 길이를 잴수있는법이 있나요?
arr은 메모리에 연속된 주소값을 가지니깐 [a,b]의 길이를 구하려면 b주소 - a주소 하면 되겠지
근데 arr가 int형이면 4바이트니 나누기 4를 해야하고 본문의 arr는 char형 1바이트형이니 그럴 필요가 없고
헉
그런방법이;;;
감사함다(__)