학원갈 준비한다고 C언어 독학하다보니 맨날 찾아오게되네..^오^
오늘 문제는 입력받은 문자열 갯수세는 코드 짜는 거야
일단 for 문은 저렇게 짜봤어
#include
int main() {
char ch[31];
int i;
scanf("%s", &ch);
for(i=0; ch[i] == 0; i++) {
}
printf("%d", i);
return 0;
}
근데 한가지 의문점은 종결조건을 저렇게 짜면 틀린 조건이야??
다른 예시들 보면 거진 <= < >= > 이부등호로 짜던데 == 같다로 조건 설정하면 안돼?
그래서 그런지 지금 값이 자꾸 0 으로만 출력되서 못풀겟다..
다른 조건으로 짜려면 어케 해야대는지 몰것다 내가 수포한 문돌이라 그런가 너무 어렵네 ㅋㅋ
조건문 자체가 틀림. 31로 두는거도 맞는거 같지 않고 EOF 받아오면 빠져나오는걸로 해야지.
30자 이내의 글자를 입력받앗을때를 구하래서 일단 조건은 31로 햇고 EOF는 한번 찾아볼게얌 ㄳㄳ
C의 인덱싱은 0부터 시작이기 때문에 30배열로 받으면 됨.
eof 는 찾아봤는데 아직 제가 안배운 부분이랑 같이 설명해서 이해가 잘 안되네욥 ㅠㅠ
일단 조건문을 그럼 다시생각해볼게요
for(i=0; ch[i] > 1; i++){ }
조건문 저렇게 하고 풀엇서얌 감사감사
그렇게 하면 될지도 모르겠는데 좋은 습관은 아님(안될수도 있음). EOF는 그냥 문장의 끝이라고 도장찍어놓은거라 생각하셈. scanf를 통해 받아오는 문자열 마지막에 마침표가 찍혀있다고 생각하면 됨 ch[i]==0은 쭉 잃다가 마침표 만나면 빠져나오는 형식이니 뜻으로도 명확하지. EOF는 파일의 끝이라고 정해놓을 때도 사용함.
ch[i]==0은 배열 안의 int형 숫자 0이 아니면 바로 for문을 탈출하는거니 안돌지. ch[i]==(EOF) 이런식으로 짜면 됨. 이 EOF가 뭔지는 찾아보고
그렇군요 eof 함 구글링해서 돌려보겟슴다 ㄳㄳ
문자열 저장하는데 & 왜넣음