게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
null 문자에대해서 궁금한게있어요!
게시물ID : programmer_8287짧은주소 복사하기
작성자 : 4tumn
추천 : 0
조회수 : 485회
댓글수 : 2개
등록시간 : 2015/02/21 20:47:23
옵션
  • 본인삭제금지
#include <stdio.h>

int main()
{
char str[50];
int idx = 0;
printf("단어를 입력하세요 : ");
scanf_s("%s", str, 50);

while (str[idx] != 0)
{
idx++;
printf("%d\n", idx);
}

printf("이단어는 %d개의 문자로 이루어져 있습니다.\n", idx);
return 0;
}


영단어를 입력받아서 그 글자수를 출력하는 문제인데요.
문자열에서 마지막 null문자를 찾으면 빠져나가고, 그값을 출력하는 식으로 만들었어요.
근데 아스키코드값 0이랑 '/0'이 같다고해서( str[8]=0 이랑 str[8]='/0'이 같다고 책에 적혀있더라구요)
위에 하이라이트한부분에 0을 '/0'으로 바꿔봤더니 에러가 떠요.
뭐가문제인지는 잘모르겠고.. idx값이라도 확인하려고 printf를 넣었는데 '/0'으로 바꾸니까 idx가 1800?가까이 튀어오르더라구요.
제가 뭘 잘못알고있는건가요?ㅠㅠ

그리고 두번째로, 제 책이 scanf가 scanf_s로 나오기 전에 출판된거 같은데요. 
scanf_s는 오버플로우를 방지하기 위해서 문자열의 갯수를 지정해준다고 들었어요.
그래서 저는 sizeof(str)=50을 넣었는데, 이거 마음대로 제가 100정도로 줘도 되는건가요? 혹시나해서..
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호