https://www.acmicpc.net/problem/1283
(21.08.14)
1283번: 단축키 지정 - C언어 풀이
[소스코드]
#include <stdio.h>
#include <string.h>
// [baekjoon] 1283번 - 단축키 지정
int make_tmp(char i) {
int tmp = 0;
if (i >= 'A'&&i <= 'Z') tmp = i + 32;
else if (i >= 'a'&&i <= 'z') tmp = i;
return tmp;
}
int main() {
char s[31][200];
int check[200] = { 0 };
int n, i, j;
scanf("%d", &n);
getchar();
for (i = 0; i < n; i++) {
gets(s[i]);
}
for (i = 0; i < n; i++) {
int dan_num = -1;
for (j = 0; j < strlen(s[i]); j++) {
if (j == 0) {
if (s[i][j] != ' ' && check[make_tmp(s[i][j])] == 0) {
check[make_tmp(s[i][j])] = 1;
dan_num = j;
j = 100;
}
}
else if (s[i][j] != ' ' && s[i][j - 1] == ' ') {
if (check[make_tmp(s[i][j])] == 0) {
check[make_tmp(s[i][j])]++;
dan_num = j;
j = 100;
}
}
}
if (dan_num == -1) {
for (j = 0; j < strlen(s[i]); j++) {
if (s[i][j] != ' ') {
if (check[make_tmp(s[i][j])] == 0) {
check[make_tmp(s[i][j])]++;
dan_num = j;
j = 100;
}
}
}
}
for (j = 0; j < strlen(s[i]); j++) {
if (j == dan_num) printf("[%c]", s[i][j]);
else printf("%c", s[i][j]);
}
printf("\n");
}
}
풀면서 공부했던 내용 정리해보면
- 문자열 입력받기 전에 엔터값 지우고자 getchar(); 사용
- 문자열 길이 반환하는 함수 strlen() 사용
- * 공백있는 문자열 입력받기 위해서 scanf 대신 gets(); 사용
gets()는 엔터('\n')가 입력될 때까지 입력된 모든 문자들을 저장하는 함수
'학습 정리 > 👨💻 PS Study' 카테고리의 다른 글
[C] 백준 1929번 - 소수 구하기 (에라토스테네스의 체) (0) | 2022.07.08 |
---|---|
[C] 백준 10951번 - A+B-4 (EOF 개념) (0) | 2022.07.08 |
[C] 백준 1475번 - 방 번호 (0) | 2022.07.07 |
[C] 백준 13015번 - 별찍기 23 (0) | 2022.07.07 |
[C] 백준 10808번 - 알파벳 개수 (0) | 2022.07.06 |