- 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);
}
'Computer Science > C&C++' 카테고리의 다른 글
[C언어] malloc 동적할당을 이용한 배열 출력, 역으로 출력(포인터, 이중포인터) (0) | 2021.05.31 |
---|---|
[C언어] 구조체 (Structure) (0) | 2021.05.26 |
[C언어] puts, printf / gets, scanf(scanf_s) (0) | 2021.05.22 |
[C언어] 함수 중심의 포인터 활용 (0) | 2021.05.19 |
[C언어] 메모리 공간의 동적 할당 (1) | 2021.05.19 |