편집 필터 기록

편집 필터 둘러보기 (처음 | 최근 필터의 바뀜 | 과거의 편집 검토하기 | 편집 필터 기록)
기록 60,940에 대한 자세한 정보

2024년 5월 13일 (월) 16:57: 하늘 (토론 | 기여)님이 사용자:하늘/메모장/C에서 "edit" 동작을 수행하여 필터 14이(가) 작동했습니다. 조치: 태그; 필터 설명: 삭제가 신청된 문서 (검사 | 차이)

편집에서 바뀐 내용

{{삭제|}}
문자 입출력 함수
문자 입출력 함수


명령 변수

변수
사용자의 편집 수 (user_editcount)
41278
사용자 계정 이름 (user_name)
'하늘'
사용자 계정 만든 후 지난 시간 (user_age)
136235583
사용자 권한 그룹 (자동으로 부여된 권한 포함) (user_groups)
[ 0 => '*', 1 => 'user', 2 => 'autoconfirmed' ]
문서 ID (page_id)
171664
문서 이름공간 (page_namespace)
2
(이름공간을 뺀) 문서 제목 (page_title)
'하늘/메모장/C'
전체 문서 제목 (page_prefixedtitle)
'사용자:하늘/메모장/C'
동작 (action)
'edit'
편집 요약/이유 (summary)
''
이전 콘텐츠 모델 (old_content_model)
'wikitext'
새 콘텐츠 모델 (new_content_model)
'wikitext'
편집 전 과거 문서의 위키텍스트 (old_wikitext)
'문자 입출력 함수 <syntaxhighlight lang="c"> void reverse(int *a, int n) { for (int i = 0; i < n/2; i++) { int t = a[i]; a[i] = a[n-1-i]; a[n-1-i] = t; } } </syntaxhighlight> 시간복잡도 O(n/2) <del>극단적으로 짧은 코드</del> <syntaxhighlight lang="c"> void reverse(int *a, int n) { int *end = a + n - 1; while ( (a != end && a != end+1)) { int t = *a; *a = *end; *end = t; a++, end--; } } </syntaxhighlight> 시간복잡도 O(n/2) <syntaxhighlight lang="c"> //함수의 매개변수는 포인터로 넣는다. int fgetc( FILE *fp); //파일에서 문자를 입력받는다. int fputc( int c, FILE *fp); //c에 저장된 문자를 파일로 출력한다. </syntaxhighlight> 문자열 파일에 출력 예제 <syntaxhighlight lang="c"> fp = fopen("파일 이름.txt", "w"); fputc('a',fp); fputc('b',fp); fputc('c',fp); fclose(fp); </syntaxhighlight> 실행 결과(파일) <syntaxhighlight lang="console"> abc </syntaxhighlight> 문자열 파일에서 읽어오기 예제 <syntaxhighlight lang="c"> fp = fopen("sample.txt", "r"); while((c = fgetc(fp) ! = EOF) putchar(c); fclose(fp); </syntaxhighlight> 문자열 단위 입출력 <syntaxhighlight lang="c"> </syntaxhighlight> 윈도우에서 gcc 쓰는 법 mingw64 gcc 설치하기 MSYS2를 통해서 gcc 설치하기 * MSYS2에서 직접 코딩하기 pacman -S gcc * MSYS2에서 GCC 설치해서 파워쉘이나 도스창에서 컴파일하기 WSL(Windows Subsystem Linux?) 설치해서 gcc이용하기 gcc 설치해서 비주얼 스튜디오 코드로 코딩하기 가상머신으로 리눅스 띄우고 쓰기 <syntaxhighlight lang="c"> #include <stdio.h> #include <string.h> int main() { char str[1024] = {0}; gets(str); int strleng = strlen(str); for (int i = strleng; i >= 0; i--) printf("%c", str[i]); } </syntaxhighlight> <syntaxhighlight lang="c"> // string mirror #include <stdio.h> #include <stdlib.h> int main() { int strlen = 1024; char *string = (char *)calloc(strlen, sizeof(char)); gets(string); char *str = string + strlen - 1; while (str != (string - 1)) { if (*str != 0) printf("%c", *str); str--; } free(string); } </syntaxhighlight> 동적 할당은 힙, 정적은 스택 힙은 실행 중에 할당, 스택은 실행 전 컴파일 때 이미 크기가 결정되어 있음. 컴파일 타임 때 크기를 결정하므로 배열의 크기를 변수로 놓을 수 없다. 동적 할당은 런타임에 크기가 결정되므로 배열 크기를 변수로 놓는 것이 가능하다. <syntaxhighlight lang="c"> #include <stdio.h> #include <string.h> void delchars (char *str, char ch) { int len = strlen(str); int i = 0; while ( i < len ) { if (str[i] == ch) { int j = i, width = 0; if ( str[i+1] == ch) width = 2; else width = 1; while (j < len) str[j] = str[j+width], j++; } i++; } } int main ( ) { char s1[128]; strcpy(s1, "HelloWorld"); delchars(s1, 'l'); printf("[%s]\n", s1); // [HeoWord] delchars(s1, 'W'); printf("[%s]\n", s1); // [Heoord] } </syntaxhighlight> <syntaxhighlight lang="c"> #include <stdio.h> #include <string.h> int findStr (char *str, char *target) { int i = 0; int j = 0; for ( ; (*target) != '\0' ; i++) { int count = 0; for ( ; (*str) != '\0'; j++) { if ( *str == *target) count++; str++; } str = str - j; printf("'%c' %d개", *target, count); target++; } printf("\n"); } int main () { char s[128]; strcpy (s, "Hello,World"); findStr(s, "Ho"); findStr(s, "ld"); findStr(s, "lod"); } </syntaxhighlight> ssh 루트 사용자 로그인 금지, 키없이 로그인 금지, ssh 키만 이용하도록 하기, 로그인 실패 횟수에 따라 감옥에 보내기 키 없으면 못 풀어 ㅋㅋ Brute force공격(무작위 사전 아이디 대입공격)'
편집 후 새 문서의 위키텍스트 (new_wikitext)
'{{삭제|}} 문자 입출력 함수 <syntaxhighlight lang="c"> void reverse(int *a, int n) { for (int i = 0; i < n/2; i++) { int t = a[i]; a[i] = a[n-1-i]; a[n-1-i] = t; } } </syntaxhighlight> 시간복잡도 O(n/2) <del>극단적으로 짧은 코드</del> <syntaxhighlight lang="c"> void reverse(int *a, int n) { int *end = a + n - 1; while ( (a != end && a != end+1)) { int t = *a; *a = *end; *end = t; a++, end--; } } </syntaxhighlight> 시간복잡도 O(n/2) <syntaxhighlight lang="c"> //함수의 매개변수는 포인터로 넣는다. int fgetc( FILE *fp); //파일에서 문자를 입력받는다. int fputc( int c, FILE *fp); //c에 저장된 문자를 파일로 출력한다. </syntaxhighlight> 문자열 파일에 출력 예제 <syntaxhighlight lang="c"> fp = fopen("파일 이름.txt", "w"); fputc('a',fp); fputc('b',fp); fputc('c',fp); fclose(fp); </syntaxhighlight> 실행 결과(파일) <syntaxhighlight lang="console"> abc </syntaxhighlight> 문자열 파일에서 읽어오기 예제 <syntaxhighlight lang="c"> fp = fopen("sample.txt", "r"); while((c = fgetc(fp) ! = EOF) putchar(c); fclose(fp); </syntaxhighlight> 문자열 단위 입출력 <syntaxhighlight lang="c"> </syntaxhighlight> 윈도우에서 gcc 쓰는 법 mingw64 gcc 설치하기 MSYS2를 통해서 gcc 설치하기 * MSYS2에서 직접 코딩하기 pacman -S gcc * MSYS2에서 GCC 설치해서 파워쉘이나 도스창에서 컴파일하기 WSL(Windows Subsystem Linux?) 설치해서 gcc이용하기 gcc 설치해서 비주얼 스튜디오 코드로 코딩하기 가상머신으로 리눅스 띄우고 쓰기 <syntaxhighlight lang="c"> #include <stdio.h> #include <string.h> int main() { char str[1024] = {0}; gets(str); int strleng = strlen(str); for (int i = strleng; i >= 0; i--) printf("%c", str[i]); } </syntaxhighlight> <syntaxhighlight lang="c"> // string mirror #include <stdio.h> #include <stdlib.h> int main() { int strlen = 1024; char *string = (char *)calloc(strlen, sizeof(char)); gets(string); char *str = string + strlen - 1; while (str != (string - 1)) { if (*str != 0) printf("%c", *str); str--; } free(string); } </syntaxhighlight> 동적 할당은 힙, 정적은 스택 힙은 실행 중에 할당, 스택은 실행 전 컴파일 때 이미 크기가 결정되어 있음. 컴파일 타임 때 크기를 결정하므로 배열의 크기를 변수로 놓을 수 없다. 동적 할당은 런타임에 크기가 결정되므로 배열 크기를 변수로 놓는 것이 가능하다. <syntaxhighlight lang="c"> #include <stdio.h> #include <string.h> void delchars (char *str, char ch) { int len = strlen(str); int i = 0; while ( i < len ) { if (str[i] == ch) { int j = i, width = 0; if ( str[i+1] == ch) width = 2; else width = 1; while (j < len) str[j] = str[j+width], j++; } i++; } } int main ( ) { char s1[128]; strcpy(s1, "HelloWorld"); delchars(s1, 'l'); printf("[%s]\n", s1); // [HeoWord] delchars(s1, 'W'); printf("[%s]\n", s1); // [Heoord] } </syntaxhighlight> <syntaxhighlight lang="c"> #include <stdio.h> #include <string.h> int findStr (char *str, char *target) { int i = 0; int j = 0; for ( ; (*target) != '\0' ; i++) { int count = 0; for ( ; (*str) != '\0'; j++) { if ( *str == *target) count++; str++; } str = str - j; printf("'%c' %d개", *target, count); target++; } printf("\n"); } int main () { char s[128]; strcpy (s, "Hello,World"); findStr(s, "Ho"); findStr(s, "ld"); findStr(s, "lod"); } </syntaxhighlight> ssh 루트 사용자 로그인 금지, 키없이 로그인 금지, ssh 키만 이용하도록 하기, 로그인 실패 횟수에 따라 감옥에 보내기 키 없으면 못 풀어 ㅋㅋ Brute force공격(무작위 사전 아이디 대입공격)'
편집 전후의 차이 (edit_diff)
'@@ -1,2 +1,4 @@ +{{삭제|}} + 문자 입출력 함수 '
편집 중 추가된 줄 (added_lines)
[ 0 => '{{삭제|}}', 1 => '' ]
편집이 토르 끝 노드를 통해 바뀌었는 지의 여부 (tor_exit_node)
false
바뀐 시점의 유닉스 시간 기록 (timestamp)
'1715587043'