#include <stdio.h>
int main() {
while (1) {
char word[150] = {
'\0',
}; //문자열을 입력받은 배열
char num[50]; //기준이 되는 숫자를 입력받은 배열
char word1[150] = {
'\0',
}; // space bar를 입력받은 후 배열을 입력받아서 출력하는 배열
int choice = 0; //선택 변수
int cnt = 0, cnt1 = 0;
int cnt_word1 = 0; //배열을 넣어줄 위치를 정하는 변수
int i = 0, j = 0; //반복문 변수
printf("\n\n선택 ㄱㄱ\n");
printf("1. 왼쪽 정렬\t2. 가운데 정렬\t3.오른쪽 정렬\t4. 양쪽 정렬\n");
scanf("%d", &choice);
getchar();
printf("입력 ㄱㄱ\n");
scanf("%[^\n]", word);
getchar();
printf("\n\n");
// for(j=0;j<5;j++){
// for(i=0;i<10;i++){
// num[i]=i;
// printf("%d",num[i]);
// }
// }
for (i = 0; i < 150; i++) {
word1[i] = 32;
printf("%c", word1[i]);
}
word1[150] = '\0';
printf("\n");
// 32~126 : ASCII code 범위
for (i = 0; i < 150; i++) {
if (word[i] >= 32 && word[i] <= 126) {
cnt += sizeof(word[i]);
} else if (word[i] == '\0') {
continue;
} else {
cnt1 += sizeof(word[i]);
}
}
switch (choice) {
case 1: //왼쪽 정렬
for (i = 0; i < cnt + cnt1; i++) {
cnt_word1 = i;
word1[cnt_word1] = word[i];
}
printf("%s\n", word1);
break;
case 2: //가운데 정렬
for (i = 0; i < cnt + cnt1; i++) {
cnt_word1 = 25 + i - cnt / 2 - cnt1 / 3;
word1[cnt_word1] = word[i];
}
printf("%s\n", word1);
break;
case 3: //오른쪽 정렬
for (i = 0; i < cnt + cnt1; i++) {
cnt_word1 = 50 + i - cnt - 2 * cnt1 / 3;
word1[cnt_word1] = word[i];
}
word1[150] = '\0';
printf("%s\n", word1);
break;
case 4: //균등 정렬
for (i = 0; i < cnt + cnt1; i++) { //영어까지 구현 완료.
if (word[i] >= 32 && word[i] <= 126) {
cnt_word1 = i * 49 / (cnt + cnt1 - 1); //영어
word1[cnt_word1] = word[i];
j = 0;
for (j = cnt_word1 + 1; j < 150; j++) {
word1[j] = 32;
}
} else {
cnt_word1 = i * (47 + cnt1 / 3) / (cnt + cnt1 - 3); //한글
word1[cnt_word1] = word[i];
word1[cnt_word1 + 1] = word[i + 1];
word1[cnt_word1 + 2] = word[i + 2];
i += 2;
j = 0;
for (j = cnt_word1 + 3; j < 150; j++) {
word1[j] = 32;
}
}
}
word1[150] = '\0';
printf("%s\n", word1);
break;
case 5: //추가 입력 선택
printf("더 입력할까요?\n");
printf("1. 네\t2.d아니오\n");
break;
}
}
}
실행 결과
'프로그래밍언어 > C' 카테고리의 다른 글
[c] [별짓기] 모래시계 모양을 만들어보자! (0) | 2021.08.26 |
---|---|
[C] (내가 작성한 코드를 16진수, 2진수로 보는 방법!) (0) | 2021.08.26 |
[c] 랜덤 숫자들을 랜덤 연산 시키는 프로그램 (0) | 2021.08.25 |
[c] 숫자 야구 게임 만들기 (0) | 2021.08.25 |
[c] 로또 추첨기 만들기 (0) | 2021.08.25 |