본문 바로가기
C 언어

c 언어[026] 문자열과 배열(3) strcpy:문자열 복사, strcat(문자열 추가), 문자열 초기화

by Smart Factory in 2020 2021. 10. 5.
728x90
반응형

안녕하세요. 스마트팩토리입니다. 
c 언어[026] 문자열과 배열(3) strcpy:문자열 복사, strcat(문자열 추가), 문자열 초기화에 대해 알아보겠습니다.

1.문자열 복사(strcpy)

가. 문자열 복사 

(1)strcpy 형식

strcpy(a1, a2) ;
a1에 a2 값을 복사한다. 

 

.

str[]은 love

strcopy 에는 no를  저장했습니다. 

strcpy(strcopy, str);을 하면

strcopy에 str문자열을 복사하게 됩니다. 

#include<stdio.h>
#include<string.h>

int main() {
char str[] = "love";
char strcopy[10]="no";
printf("str[] 출력값 %s,strcopy: %s\n ", str, strcopy);
strcpy_s(strcopy, str);
printf("str[] 출력값 %s,strcopy: %s\n ", str, strcopy);
}

 

str[0]='y'; 

str[0]을 y로 변경했습니다. 복사본인 strcopy 그대로 유지되고 str만 변경된 것을 알 수 있습니다. 

#include<stdio.h>
#include<string.h>

int main() {
char str[] = "love";
char strcopy[10]="no";
printf("str[] 출력값 %s,strcopy: %s\n ", str, strcopy);
strcpy_s(strcopy, str);
printf("str[] 출력값 %s,strcopy: %s\n ", str, strcopy);
str[0]='y';
printf("str[] 출력값 %s,strcopy: %s\n ", str, strcopy);

}

,나. 문자열 추가

(1) strcat

strcat형식
strcat(a1,"추가할 문장");

char str[50] = "love";

str[50]으로 해서 love를 출력합니다.

이후에 문장열을 추가하려면 인덱스 별로 한글자씩 넣어줘야 하는 방법이 있지만 그건 비효율적입니다.

strcat_s(str, " forever");

 strcat함수를 활용하여 문자열 추가를 할 수 있습니다. 

#include<stdio.h>
#include<string.h>

int main() {
char str[50] = "love";
printf("str[] 출력값 %s\n ", str);
strcat_s(str, " forever");
printf("str[] 출력값 %s\n ", str);
}

다. 문자열 초기화

 

문자열에 공백 즉 초기화를 위해서는  반복문을 활용하여 각 인덱스에 0 값을 넣어주면 됩니다.

for (int i = 0; i <= strlen(str); i++)
{str[i] =0;}
printf("str[] 출력값 %s\n ", str);

 

#include<stdio.h>
#include<string.h>

int main() {
char str[50] = "love";
printf("str[] 출력값 %s\n ", str);
strcat_s(str, " forever");
printf("str[] 출력값 %s\n ", str);
for (int i = 0; i <= strlen(str); i++)
{
str[i] =0;
}
printf("str[] 출력값 %s\n ", str);
//printf("str[] 출력값 %d\n ", str);
}
728x90
반응형

댓글