C언어 문자열배열
2018. 9. 29. 21:38ㆍ개발노트
문자열배열을 사용해서 소문자로 입력된 문자열을 대문자로 변경하고 출력하고
배열을 역순으로 출력하는 프로그램을 만들어봤습니다.
문자열배열을 만들어줍시다.
넉넉하게
char str[100];
문자열 입력에는
gets 함수를 사용합니다.
저번에 ROT13에서도 사용했듯이 한글자씩 입력받기 위함입니다.
1 | gets_s(str); | cs |
이렇게 문자열배열을 만들어주고
소문자를 대문자로 만들기위해 if문을 만들어줍시다.
1 2 3 4 5 6 7 8 9 | if (str[i] >= 'a' && str[i] <= 'z') { printf("%c", str[i] - 32); } else { printf(" "); } | cs |
소문자면 입력된 문자열에서 -32를 해줍니다.
대소문자 사이가 32만큼 차이가 나서 그런겁니다.
대문자를 소문자로 바꾸려면 +32를 해주면 되겠네요.
역순은 어떻게 구할까요?
for문을 돌며 str 배열의 끝부터 하나씩 출력합니다.
1 2 3 4 | for (i = strlen(str) - 1; i >= 0; i--) { printf("%c", str[i]); } | cs |
strlen() 함수를 쓰기 위해서는
#include <string.h> 를 사용해서 헤더를 불러와야합니다.
전체코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | #include <stdio.h> #include <string.h> int main() { char str[100]; int i; printf("문자열을 입력하세요 : "); gets_s(str); printf("\n"); printf("변경 후 문자열 : "); for (i = 0; i < 100; i++) { if (str[i] >= 'a' && str[i] <= 'z') { printf("%c", str[i] - 32); } else { printf(" "); } } printf("\n"); printf("역순 : "); for (i = strlen(str) - 1; i >= 0; i--) { printf("%c", str[i]); } } | cs |