[C언어] 입력 된 문자열 교환
최근 일이 생겨서 일주일 정도 컴퓨터를 사용 할 수 없게 되어서 한동안 post를 중단했네요. 간간히 스마트폰으로 스티미언 글을 읽는 정도가 한계라 폰으로 post 작성이 어려워서 그냥 포기했었네요. 어느정도 마무리가 되어 다시 post를 쓰는데 감이 많이 떨어져서 글쓰기가 많이 힘드네요. 간단히 마지막 post로 올렸던 문자열 과련 코딩을 주제로 워밍업으로 간단히 post를 작성합니다.
1. 문자열 교환
여러가지 방법이 있겠지만 간단히 입력받은 문자열에서 문자열의 중간글자를 기준으로 좌우로 문자를 교환하는 방식으로 실험을 하겠습니다.
hello => olleh
"hello"라는 문자열이 중간 문자를 기준으로 좌우를 바꾸게 되면 글자가 역순으로 저장되게 되겠죠.
한번 실제로 그렇게 되는지 코딩해 봅시다.
2. 코딩
문자열을 교환하려면 우선 문자열을 길이를 구하고 그 문자열의 중심 지점을 알아야 합니다.
먼저 문자열 구하기인데 원래 문자열 길이를 구하는 함수를 사용하면 쉽게 되는데 입력된 문자열을 while()문을 이용하여 길이를 간단히 구해봤네요.
while(str[len]) len++;
그 다음 문자열 중심은 len/2로 간단히 표현 합니다.
그 다음 len/2을 기준으로 좌우 문자열을 교환해 봅시다.
for(int i=0;i<len/2;i++)
{
ch=str[i];
str[i]=str[len-i-1];
str[len-i-1]=ch;
}
종합해보면,
#include
void main()
{
char str[100];
char ch;
int len=0;
printf("문자열을 입력하세요 \n");
scanf("%s",str);
while(str[len]) len++;
for(int i=0;i<len/2;i++)
{
ch=str[i];
str[i]=str[len-i-1];
str[len-i-1]=ch;
}
printf("변경된 문자열 : %s \n",str);
}
[결과]
마무리
오늘은 그동안 post를 작성을 못해서 간단히 워밍업으로 문자열 코딩 실험을 했네요.