c언어 질문한애 코드짰다. 가져가라
익명(125.143)
2019-07-24 14:22
추천 0
댓글 17
다른 게시글
-
롤토체스 너무 못해서 접는다 ㅅㅂ [2]땔감(gcp24685) | 19.07.24추천 0
-
c언어 잘아는 사람만 뭐가 잘못됐는지 제발 알려주십쇼 [16]익명(222.113) | 19.07.24추천 0
-
약속 언어 거른다 [1]익명(61.84) | 19.07.24추천 0
-
Django 10일차....... [6]익명(223.38) | 19.07.24추천 0
-
일본태생 루비언어 out , 순수한글언어 약소쿠 합시다. [2]사탄(175.223) | 19.07.24추천 0
-
쿠팡 재고DB문제ㅋㅋ [3]익명(223.62) | 19.07.24추천 0
-
역시 리타는 자유주의를 버릴래 [8]리버럴타운..(175.223) | 19.07.24추천 0
-
중국 엔지니어들은 진짜 엔지니어같이 생겼네익명(lpiecel) | 19.07.24추천 0
-
근데 나 일본에서 자동차 시스템 개발하는 외노자인데 [2]ㅇㅇㅇ(133.70) | 19.07.24추천 0
-
일본 후쿠시마 원전사고 후 현지 암, 심혈관질환, 백내장 증가표익명(185.100) | 19.07.24추천 0
한가지 문제가있는데 만약 02-111 -2222 로 전화오면 이상한값 출력되는데 -가 *로 바뀜
생각해보니 02도있네 - dc App
그럼 그냥 두 번째 하이픈 위치 확인해서 앞뒤로 * 문자로 바꿔
두번째 하이픈 위치를 찾는 코드를 어떻게 짬??
문자열 처음부터 훑어서 두 번째로 하이픈 만나는 위치가 두 번째 하이픈 위치지 count같은데다가 만난 횟수 담아두면 되잖아
char* change(char* number) { while (*++number - '-'); while (*++number - '-'); }
for 문 이용해서 다 훑는다 치자 그러면 010 - 1111 -2222 이렇게 입력하면 -가 두번나오는데 두번쨰 나올때 카운트를 어덯게 잡아내냐 이게 궁금한거지 만약 if(number[i] = '-' ) break; 이래버리면 첫번째 카운트에서 바로 끝날텐데 이게 궁금함
그건... 코드 앞에 놓고 잘 생각해보자..^^ - dc App
방법은 되게 여러가지임 - dc App
이해가 안되는게 while (* ++number - '-' ) 가 뭔뜻이야 ??
number 위치의 문자가 '-'일 때까지 number를 다음 문자 위치로 옮기는 코드임 두번 찾으면 두번째 대시 위치가 되겠지? char* change(char* number) { while (*++number - '-'); while (*++number - '-'); *++number = '*'; *++number = '*'; *(number -= 3) = '*'; *--number = '*'; }
c에서는 조건문 안의 결과가 0이면 거짓이거든. 그러니까 *++number값이 '-'와 같은지 보는거임 - dc App
와... 이해됨 어떻게 이런생각을함?? 배열의 주소 이동해서 -이면 끝내고 한번더 -일떄 끝내서 그 위치에서 +1해서 *로 바꾸고 다시 +1해서 *로 바꾸고 -3해서 *로 바꾸고 다시 뺴서 *로 바꾸는거네 와.. 이런생각은 어떻게하는거야?
그게 다 경험임. 이런코드 저런코드 보면서 익혀서 네걸로 만들어봐. - dc App
물론 다른언어에선 훨씬 편하게 찾을 수 있긴함.ㅋㅋㅋㅋ 대신 속도차이가 나지 - dc App
다른언어중에서 c가 빠른편이라하는데 c가 그럼 제일빠름? 아니면 어셈블리가 더빨라?
C string 맨 마지막에 널 문자 들어가는건 앎? 그리고 배열을 파라미터로 받는데 사이즈도 안 받누