Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 논문 파파고
- 피아노커버
- python piano
- 씀
- pdf 복붙
- C
- 원소
- 논문 구글번역
- pdf 파파고
- 자기장
- SRGAN
- 너의 이름은 ost
- C언어
- 함수 원형
- 이것이 C언어다
- 수소
- mri
- 중성자
- 구글번역
- Python
- super resolution
- piano cover
- magnetic field
- pdf복붙
- 서현우의 C프로그래밍 정복
- 피아노 커버
- 조립식 컴퓨터
- 재귀호출
- 유재하
- function
Archives
- Today
- Total
로봇이 되고픈 부엉이
(C 언어) 압축문자열 본문
728x90
반응형
포인터를 드디어 건드리고 말았다...
역시 공부를 안하고는 하기 쉽지 않는 포인터의 영역...
이번 문제는 나에게 정말 큰 힘듦을 가지게 해주었다.
문제는 다음과 같다.
"
압축 규칙: 문자(a-z, A-Z)의 반복 횟수를 문자 앞에 적어준다.
압축된 문장을 입력받는다.
압축을 풀어 원래의 문장으로 복원한다.
다음은 해답이다.
아니... 이 방법은 그냥 야매로 한 것이므로 솔직히 내 방법을 베낄꺼면 걸린다고 보면 된다.
#include<stdio.h>
#include<Windows.h>
#include <stdlib.h>
#include<math.h>
int main() {
char abc[80] = {0,};
char* ptr = abc;
scanf("%s", abc);
//printf("%c", *(ptr+1));
int cnt = 0, arr[10] = { 0, };
//printf("%d", *ptr);
for (int i = 0; i < strlen(abc); i++) {
int a = *ptr;
if ((65 <= a && a < 91) || (97 <= a && a < 123)) {
for (int j = 0; j < cnt; j++) {
printf("%c", *ptr);
}
cnt = 0;
ptr++;
}
else {
//printf("%d", atoi(ptr));
cnt = atoi(ptr);
if ((cnt - 10) >= 0) {
ptr = ptr + 2;
}
else {
ptr++;
}
}
}
//system("pause");
return 0;
}
728x90
반응형
'대학생의 그쩍거림 > C 언어' 카테고리의 다른 글
(C 언어) 프로젝트 : 채널 돌리기 (0) | 2019.06.25 |
---|---|
(비주얼 스튜디오 문제) scanf: This function or variable may be unsafe. (0) | 2019.05.27 |
(C 언어) 동전던지기 게임 (0) | 2019.05.17 |
(C 언어) 최대 부분합 구하기 (0) | 2019.05.17 |
(C 언어) Factorial(재귀호출 사용) 팩토리얼 n! 구하기 (0) | 2019.04.21 |