char arr[100];
printf("분자식을 입력하십시오.\n");
scanf("%s", arr);
이런식으로 a1b2c3을 입력하면
arr[0] = a
arr[1] = 1
.....
일거 아님.. 근데 배열의 크기는 100으로 정해놨음
for구문을 내가 입력한 문자의 갯수만큼만 반복시키고 싶은데
어떻게 방법이 없슴 ㅠㅠ??????????
배열의 크기를 봐도 100으로 나올거고 감이 안옴
char arr[100];
printf("분자식을 입력하십시오.\n");
scanf("%s", arr);
이런식으로 a1b2c3을 입력하면
arr[0] = a
arr[1] = 1
.....
일거 아님.. 근데 배열의 크기는 100으로 정해놨음
for구문을 내가 입력한 문자의 갯수만큼만 반복시키고 싶은데
어떻게 방법이 없슴 ㅠㅠ??????????
배열의 크기를 봐도 100으로 나올거고 감이 안옴
strlen
c언어에 나오는 거임?
문자열이면 끝에
문자의 배열이 아니고 다른 데이터형의 배열이면 답 없대. 직접 알려줘야 한대.
모라고...?
for (i=0; arr[i]; i++);
문자의 배열이긴 함
그렇게하면 쓸데없는 연산이 생기는거 아님? 난 arr[7]까지만 입력해쓴ㄴ데 arr[100]까지 돌리는거자늠
strlen(arr) 하니까 바로 되네여 ㄳㄳ
C린아 조건이 null이 되면 빠져 나오잔아
Strlen 쓰면 함수 호출 하고 그에 따른 string 해더파일로 불러와야하는데 메모리 낭비지..
내가 알려준 for문 써봐 너가 입력한디 까지만 되는고야 For문 조건이 false 즉 0 이면 나오잔아 null이 0이야
ㅂㄷㅂㄷ
글쓴이ㅋㅋㅋ 미래가 어둡다 착하게 이놈이 고수인데
ㄷㄷ 함 해볼게요
메모리 낭비라는건 생각읆 ㅗㄴ했네
마! 메모리 아껴서 어따쓸라꼬!!
내가 티나찡을 디스할 생각은 전혀 없었다네 미안하오 남아도는게 메모리임 솔직히 ㅋㅋㅋ
머 사실 차카게 아조시처럼 짜야 간지나긴함; 더 엘레강스한 해결방법이기도 하고...
가독성을 생각하면 티나님이 짠게 맞아요. 저는 성능을 보고 짠거구요! 답은 없어여. 무슨 프로그램을 만드느냐에 따라 결정되는 것 뿐이에여
문자열의 끝은 보통 00, null terminated 로 구분하므로 착하게 살자 처럼 짜면 됩니다.
착하게님처럼 짜는게 간지가 나므로 ㅊㅊ
일단 string을 인클루드한다고 메모리 사용량이 증가하지는 않고, 가독성을 생각하면 strlen으로 문자열 길이만큼 반복한다고 명시하는게 낫다고 보는데, 다만 잘못하면 러시아 페인트공 알고리즘이 될 수 있다는거만 조심하면 됨.
int cnt =scanf("%s", arr); 하고 cnt 만큼 돌려도 됨 - ♡