More actions
No edit summary |
(Quality repair v1) |
||
| (5 intermediate revisions by 2 users not shown) | |||
| Line 45: | Line 45: | ||
try : | try : | ||
option = sys.argv | option = sys.argv[1] | ||
s_data = str(sys.argv | s_data = str(sys.argv[2]) | ||
except : | except : | ||
option = input() | option = input() | ||
| Line 52: | Line 52: | ||
if option == '-r' : | if option == '-r' : | ||
print(s_data | print(s_data[::-1]) | ||
elif option == '-u' : | elif option == '-u' : | ||
print(s_data.upper()) | print(s_data.upper()) | ||
| Line 58: | Line 58: | ||
print(s_data.lower()) | print(s_data.lower()) | ||
elif option == '-a' : | elif option == '-a' : | ||
print("".join(re.findall(r'^| | print("".join(re.findall(r'^|[a-zA-Z]', s_data))) | ||
elif option == '-n' : | elif option == '-n' : | ||
print("".join(re.findall('\d+', s_data))) | print("".join(re.findall('\d+', s_data))) | ||
* 과제_창성 | * 과제_창성 | ||
| Line 66: | Line 68: | ||
import sys, re | import sys, re | ||
def switch(x | def switch(x): | ||
return {"-r": string | return {"-r": string[::-1], | ||
"-u": string.upper(), | "-u": string.upper(), | ||
"-l": string.lower(), | "-l": string.lower(), | ||
"-a": re.sub(' | "-a": re.sub('[0-9]','',string), | ||
"-n": re.sub(' | "-n": re.sub('[^0-9]','',string)} | ||
if(len(sys.argv) == 3): | if(len(sys.argv) == 3): | ||
option = sys.argv | option = sys.argv[1] | ||
string = sys.argv | string = sys.argv[2] | ||
elif(len(sys.argv) == 2): | elif(len(sys.argv) == 2): | ||
option = sys.argv | option = sys.argv[1] | ||
string = input() | string = input() | ||
| Line 84: | Line 86: | ||
option, string = input().split() | option, string = input().split() | ||
print(switch(option | print(switch(option)[option]) | ||
= 기타 / 후기 / 방명록 = | = 기타 / 후기 / 방명록 = | ||
* 앗 오늘은 4월3일이잖아 - [[성훈|멍청한 튜터]] | * 앗 오늘은 4월3일이잖아 - [[성훈|멍청한 튜터]] | ||
| Line 90: | Line 93: | ||
[[새싹교실/2018/C알]] | [[새싹교실/2018/C알]] | ||
[[새싹교실/2018]] | [[새싹교실/2018]] | ||
Latest revision as of 04:58, 27 March 2026
예정
- 포인터(pointer)
- 포인터 타입, 다중 포인터, 포인터 연산, void*
- pointer as parameter
- 배열 타입(recall)
- 배열과 포인터의 관계
- pointer to arrays, array of pointers
- 프로그램 인자(argument) : int argc, char *argv[]
- 동적 메모리 할당(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
- 함수 포인터
- void qsort(void*, void*, size_t, int(*)(void*, void*))
- 실습
- simpleformatter : 간단한 문자열 처리
simpleformatter <option> <string> <option>
- {{{
-r : 문자열 뒤집기 -u : 소문자를 대문자로 -l : 대문자를 소문자로 -a : 알파벳만 남기기 -n : 숫자만 남기기 }}}
- 인자가 없을 경우 : 사용자 입력을 받아 처리
- '-'가 있는 경우와 없는 경우 모두 처리해야함
- 옵션만 있으면, 문자열만 입력 받을것
진행
- 과제 : 오늘의 실습을 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일이잖아 - 멍청한 튜터