- str1[100]에 문장을 저장
- str2[100]에 입력 받은 문장
- strncat/strlen 활용
#include <stdio.h>
#include <string.h>
int main(void) {//ex. hello
int len;//문자열 길이
char str1[100];
printf("Please input the sentence : ");
gets(str1);//100글자 이내의 문장을 입력받아 str배열에 저장
len=strlen(str1);//문자열 길이, 5
char str2[len+1];//strlen사용, 6 길이의 배열 \0을 포함해야하기 때문
//처음에 초기화 시킬때랑 실제 배열 사용할때가 구별되야함. 배열 사용할땐 -1
for(int i=0;i<len;i++){ //i=5까지 반복문 실행
//strncat 사용하여 해야함.
//처음 생각했던 코드
// char temp[len];
// temp[i]=str1[len-i-1];
// strncat(str2, temp+i ,1);
strncat(str2,str1+len-1-i,1);//str1+5-i, str1은 str1[0]의 주소를 가리킴
// (len-1)을 더한 이유 : 배열 사용할때 -1 해야함(?), len로하면 \0먼저 받아올듯?
}
str2[len+1]='\0';
printf("Inversed sentence: ");
puts(str2);
}