Difference between r1.2 and the current
@@ -35,9 +35,59 @@
* 옵션만 있으면, 문자열만 입력 받을것
= 진행 =
* 앗 오늘은 4월3일이잖아 - [성훈|멍청한 튜터]
-----------------------------------
= 진행 =
* 과제 : 오늘의 실습을 python으로 구현 (3 추천)
= 실습 = * 과제_승진
{{{
import sys
import re
try :
option = sys.argv[1]
s_data = str(sys.argv[2])
except :
option = input()
s_data = input()
if option == '-r' :
print(s_data[::-1])
elif option == '-u' :
print(s_data.upper())
elif option == '-l' :
print(s_data.lower())
elif option == '-a' :
print("".join(re.findall(r'^|[a-zA-Z]', s_data)))
elif option == '-n' :
print("".join(re.findall('\d+', s_data)))
}}}
* 과제_창성
{{{
#!/usr/bin/env python3
import sys, re
def switch(x):
return {"-r": string[::-1],
"-u": string.upper(),
"-l": string.lower(),
"-a": re.sub('[0-9]','',string),
"-n": re.sub('[^0-9]','',string)}
if(len(sys.argv) == 3):
option = sys.argv[1]
string = sys.argv[2]
elif(len(sys.argv) == 2):
option = sys.argv[1]
string = input()
else:
option, string = input().split()
print(switch(option)[option])
}}}
= 기타 / 후기 / 방명록 =* 앗 오늘은 4월3일이잖아 - [성훈|멍청한 튜터]
-----------------------------------
1. 예정 ¶
- 포인터(pointer)
- 포인터 타입, 다중 포인터, 포인터 연산, void*
- pointer as parameter
- 배열 타입(recall)
- 배열과 포인터의 관계
- pointer to arrays, array of pointers
- 프로그램 인자(argument) : int argc, char *argv[]
- pointer to arrays, array of pointers
- 포인터 타입, 다중 포인터, 포인터 연산, void*
- 동적 메모리 할당(dynamic allocation)
- 프로세스 구조
- void* malloc(size_t)
- void free(void*)
- calloc, realloc
- 프로세스 구조
- 문자열
- C에서의 문자열 : null-terminated string
- string.h
- strlen, strcmp, strchr, strstr, strcpy, strcat, strtok
- sscanf, sprintf
- strlen, strcmp, strchr, strstr, strcpy, strcat, strtok
- C에서의 문자열 : null-terminated string
- 함수 포인터
- void qsort(void*, void*, size_t, int(*)(void*, void*))
- void qsort(void*, void*, size_t, int(*)(void*, void*))
- 실습
- simpleformatter : 간단한 문자열 처리
simpleformatter <option> <string>
<option>
:
-r : 문자열 뒤집기 -u : 소문자를 대문자로 -l : 대문자를 소문자로 -a : 알파벳만 남기기 -n : 숫자만 남기기
- 인자가 없을 경우 : 사용자 입력을 받아 처리
- '-'가 있는 경우와 없는 경우 모두 처리해야함
- 옵션만 있으면, 문자열만 입력 받을것
- '-'가 있는 경우와 없는 경우 모두 처리해야함
- simpleformatter : 간단한 문자열 처리
3. 실습 ¶
- 과제_승진
import sys import re try : option = sys.argv[1] s_data = str(sys.argv[2]) except : option = input() s_data = input() if option == '-r' : print(s_data[::-1]) elif option == '-u' : print(s_data.upper()) elif option == '-l' : print(s_data.lower()) elif option == '-a' : print("".join(re.findall(r'^|[a-zA-Z]', s_data))) elif option == '-n' : print("".join(re.findall('\d+', s_data)))
- 과제_창성
#!/usr/bin/env python3 import sys, re def switch(x): return {"-r": string[::-1], "-u": string.upper(), "-l": string.lower(), "-a": re.sub('[0-9]','',string), "-n": re.sub('[^0-9]','',string)} if(len(sys.argv) == 3): option = sys.argv[1] string = sys.argv[2] elif(len(sys.argv) == 2): option = sys.argv[1] string = input() else: option, string = input().split() print(switch(option)[option])