SPRING :: NOTE
[C] 문자열을 겹쳐 출력하는 프로그램 작성 본문
반응형
# 문제 설명
- 문자열 my_string, overwrite_string과 정수 s가 주어진다.
- 문자열 my_string의 인덱스 s부터 overwrite_string의 길이만큼을
문자열 overwrite_string으로 바꾼 문자열을 return 하는 solution 함수를 작성
# 제한사항
- my_string와 overwrite_string은 숫자와 알파벳으로 이루어져 있습니다.
- 1 ≤ overwrite_string의 길이 ≤ my_string의 길이 ≤ 1,000
- 0 ≤ s ≤ my_string의 길이 - overwrite_string의 길이
# 입출력 예
- my_string overwrite_string s result
- "He11oWor1d" "lloWorl" 2 "HelloWorld"
- "Program29b8UYP" "merS123" 7 "ProgrammerS123"
#include <stdio.h>
#include <string.h>
char* solution(char* my_string, char* overwrite_string, int s) {
int i, j;
int overwrite_len = strlen(overwrite_string);
int my_string_len = strlen(my_string);
for(i=s, j=0; j<overwrite_len; i++, j++){
my_string[i] = overwrite_string[j];
}
return my_string;
}
int main() {
char my_string[1001], overwrite_string[1001];
int s;
scanf("%s %s %d", my_string, overwrite_string, &s);
printf("%s\n", solution(my_string, overwrite_string, s));
return 0;
}
먼저, solution 함수에서는 my_string 문자열에서 s번째 인덱스부터 overwrite_string의 길이만큼을 overwrite_string으로 대체한 새로운 문자열을 리턴한다.
이를 위해서, s번째 인덱스부터 overwrite_string의 길이만큼을 추출하기 위해 memcpy 함수를 사용하였다. 그리고 추출한 영역에 대해 overwrite_string을 복사하기 위해 strcpy 함수를 사용한다.
마지막으로, 변경된 문자열과 overwrite_string을 합치기 위해 strcat 함수를 사용한다.
예를 들어, my_string이 "He11oWor1d"이고 overwrite_string이 "lloWorl"이며, s가 2인 경우, "He11oWor1d"에서 인덱스 2부터 7까지 추출하면 "11oWor1"이 된다.
이후, 이 부분에 overwrite_string을 복사하여 "lloWorl"로 대체하면 "He" + "lloWorl" + "d" 가 되며, 이 문자열을 리턴한다.
반응형
'Development Language > C · C++ · MFC' 카테고리의 다른 글
[C] 문자 배열을 이용하여 문자열을 출력하는 프로그램 작성 (0) | 2023.04.25 |
---|---|
[C] 번갈아가며 문자열을 만드는 프로그램 작성 (0) | 2023.04.25 |
[C] 입력받은 정수 홀/짝 구분하는 프로그램 작성 (0) | 2023.04.25 |
[C] 문자열을 시계방향으로 90도 돌리는 프로그램 작성 (0) | 2023.04.25 |
[C] 두개의 문자열을 붙여서 출력하는 프로그램 작성 (0) | 2023.04.25 |
Comments