몇 가지 기본 사항 : 영업 이익
: 왜 scanf와의 % 2 초 형식 지정자를 넣어 않았다?
------> 문자열의 처음 두 문자 만 출력 할 수 있습니다. 간단한 scanf % s을 사용하십시오.
이제 답변 : 문자열과 문자 배열
충전물 : 상기 메모리 어레이 내의
(a continguous 메모리 블록)이
---------------------------------------------------------
| 't' | 'e' | 's' | 't' | '\0' | Rest all are also '\0' |
---------------------------------------------------------
0 1 2 4 5 6 7 8 9
그리고는 sizeof (배열) 같다 char가 size = 1이기 때문에 여기에 배열의 크기 즉 10을줍니다.
sizeof (char * array)는 배열의 첫 번째 요소 크기 즉 char (size = 1)을 제공합니다.
그래서 결과는 10입니다. 요소의 크기로 배열 크기를 나눠서 전체 블록의 크기를 알 수 있습니다. 배열의 첫 번째 널 문자에 대한
검색 :
가득 배열의 크기를 얻으려면.
int i=0;
for(i=0;i<10;i++)
{ if(name[i]==NULL) break; }
printf("Size is %d\n",i);
또는 해당 작업을 수행하는 string.h 라이브러리에 포함 된 strlen 함수를 사용하십시오.
#include <string.h> {......... printf("Size is %d\n",strlen(name));......}
이름이 test => scanf ("% 2s", name)이기 때문에; // "test"를 입력하십시오 – user1012535
OP에 downvoting.according하기 전에 OP의 명성 포인트를 확인하는 것이 좋을 것 같아요. 그는 대답이없고 자신의 검색에서 잘못된 키워드로 조사하려고했습니다. – rjv