#include <stdio.h>
#include <string.h>
 
void sumFn(char* d, const char* s) {
 
    while (*s) {
        *d = *s;
        d++;
        s++;
    }
    *d = '\0'; 
}
 
int main() {
   const char* str1 = "first";
    char str2[50] = "teststring";  
    int result=0;
    sumFn(str2, str1);
 
    for (int i = 0; str2[i] != '\0'; i++) {
        result += i;
    }
    printf("%d", result);
    
    return 0;
}
코드 핵심 요약
- sumFn(char* d, const char* s) 는 소스 s → 목적지 d 로 문자 복사함
 - while (*s) 조건은 현재 *s 가 널문자 '\0' 이 아닐 때만 루프 돈다는 뜻임
 - 루프 끝나면 *d = '\0' 로 문자열 끝 처리함
 - 메인에서 str2 에 "first" 복사된 뒤, 인덱스 합 구함(문자값 합 아님, 인덱스 합임)
 
while 루프 디테일 추적(문자 단위 복사 흐름)
초기 상태
- s → "first\0" 의 첫 글자 'f' 가리킴
 - d → str2 버퍼 처음(원래 "teststring..." 있었어도 덮어씀)
 
루프 진행(각 회차 끝나고 포인터 증가함):
회차(k) *s(읽음) 동작 str2 변화(앞부분만) 루프 후 s 위치 루프 후 d 위치
| 0 | 'f' | *d = *s 실행함 | f | 'i' | index 1 | 
| 1 | 'i' | 복사함 | fi | 'r' | index 2 | 
| 2 | 'r' | 복사함 | fir | 's' | index 3 | 
| 3 | 's' | 복사함 | firs | 't' | index 4 | 
| 4 | 't' | 복사함 | first | '\0' | index 5 | 
- 다음 턴에 *s 가 '\0' 이라서 while (*s) 조건이 거짓 → 루프 종료됨
 - 루프 종료 직후 *d = '\0' 실행함 → str2 = "first\0" 로 확정됨
 - 참고: str2 버퍼 뒤쪽에 기존 쓰레기 데이터 남아 있어도 널로 끊겼으니 의미 없음
 
시각화(앞부분)
복사 전: str2 = "teststring..."  
복사 후: str2 = "first\0ring..."  // '\0' 뒤는 남아있어도 문자열로 취급 안함
결과 계산 로직
for (int i = 0; str2[i] != '\0'; i++) {
    result += i;
}
- str2 길이 = 5( "first" )
 - 합 = 0 + 1 + 2 + 3 + 4 = 10
 - 일반식 = n 길이면 n*(n-1)/2 임 → 여기선 5*4/2 = 10
 
포인터/문자 관련 포인트
- while (*s) 에서 *s 가 '\0'(0) 이면 거짓 → 종료됨
 - d++, s++ 는 문자 하나 복사 후 다음 칸으로 포인터 이동함
 - 마지막에 *d = '\0' 안 하면 C 문자열 아님 → 반드시 필요함
 
안전성 메모
- 현재 str2 크기 50이라 "first" 복사 안전함
 - 일반적으로는 버퍼 크기 체크 권장함
- 대안: strncpy(d, s, bufSize-1); d[bufSize-1] = '\0'; 패턴 쓰는 편임
 - 또는 strlcpy 계열(환경에 있으면) 쓰는 편임
 
 
한줄평
포인터 헷갈리지만 풀리긴함
출처
https://chobopark.tistory.com/483#google_vignette
[2024년 2회] 정보처리기사 실기 복원 문제
안녕하세요. 2024년 2회 정보처리기사 실기 기출문제를 정리해보았습니다.해당 복원된 기출문제가 많은 분들에게 도움이 되었으면 좋겠습니다.정보처리기사 개편안인 2020년 시험부터 기출문제
chobopark.tistory.com
'정보처리기사' 카테고리의 다른 글
| 2024년 정보처리기사 실기 2회 18번 문제 공부 및 풀이 (0) | 2025.09.25 | 
|---|---|
| 2024년 정보처리기사 실기 2회 17번 문제 공부 및 풀이 (0) | 2025.09.25 | 
| 2024년 정보처리기사 실기 2회 13번 문제 공부 및 풀이 (0) | 2025.09.24 | 
| 2024년 정보처리기사 실기 2회 1번 문제 공부 및 풀이 (0) | 2025.09.24 | 
| 2024년 정보처리기사 실기 1회 19번 문제 공부 및 풀이 (0) | 2025.09.18 |