주어진 문자열
chch2을 알고리즘을 이용해 덧붙여 출력하시오.
score : 300
#include <stdio.h>
int main(void) {
char ch[30] = "score : ";
char ch2[30] = "300";
int i = 0;
while (ch[i] != '\0')
i++;
for (int j = i; ch2[j-i] != '\0'; j++)
ch[j] = ch2[j - i];
printf("%s\n", ch);
return 0;
}
char ch[30] = "score : ";
char ch2[30] = "300";
덧붙일 문자열인 ch와 ch2가 주어진다.
int i = 0;
while (ch[i] != '\0')
i++;
첫번째 문자열인 ch의 길이를 구하기 위해 ch의 값이 null이 아닐 때까지 i를 1씩 증가시키며 while문을 반복해서 돌린다.
i를 while문 밖에 둔 이유는 아래의 for문에서도 i의 값이 쓰일 것이기 때문이다.
for (int j = i; ch2[j-i] != '\0'; j++)
ch[j] = ch2[j - i];
앞에서 구한 i는 곧 ch의 비어있는 첫 번째 방이기 때문에 그 다음 요솟값인 j에 i를 저장한다. 이 for문도 마찬가지로 null값이 있을 때까지 for문을 반복한다.
비어있는 방인 ch[j]부터 차근히 ch2의 문자를 저장한다. j-i를 해야 ch2의 요솟값이 0부터 차례로 증가하게 된다.
printf("%s\n", ch);
return 0;
ch와 ch2를 합친 문자열 배열인 ch를 출력한 뒤 프로그램을 종료한다.
score : 300