2014-04-11 3 views
-4

런타임에 문자열을 저장하려고합니다.C에서 런타임에 문자열 저장

#include<stdio.h> 
#include<string.h> 

    void main() 
    { 

     char string[4]; 
     printf("Enter the String\n"); 
     scanf("%s", &string[4]); 
     printf("The String entered is %s\t", string); 
    } 

출력 : ABCD 문자열 입력 한 문자열을 입력

하지만 문자열 입력해야 실제 예상 출력은 ABCD이다. 왜 나는 비었 을까요?

+4

: 당신이 4 개 문자를 유지하려면

scanf("%s", string); 

변경을 그리고, 당신은 적어도 크기 = 5 (마지막 하나는 널 종료 문자입니다)해야 '문자열'[...] scanf ("% 4s", 문자열);' – BLUEPIXY

+0

'& 문자열 [4]'->'문자열'... – holex

답변

2

&string[4]은 배열의 끝 부분의 주소이며 시작 부분은 아닙니다.

char string[5]; 
2

&string[4]은 배열 끝 부분을 말하며 단지 string을 사용하여 배열의 시작 부분을 나타냅니다.

또한 null 종료 문자를 넣으려면 끝에 공백을 남겨 두어야합니다.

관련 문제