반응형
문자열에서 대소문자 구분없이 알파벳 문자수를 카운트하는 C언어 코드입니다.
#define _CRT_SECURE_NO_WARNINGS // Visual Studio
#include <stdio.h>
int main() {
char s[200] = { 0 };
int alpha[26] = { 0 };
int i = 0, a;
// gets(s); -- 비주얼스튜이오에서는 fgets 함수 사용
// gets 함수를 사용할 때는 아래의 while문의 '\n'를 '\0'로 변경해야 함
fgets(s, 200, stdin);
while (s[i] != '\n')
{
if (s[i] >= 'A' && s[i] <= 'Z')
{
a = s[i] + 32; // 대문자를 소문자로 변경
alpha[a - 97]++;
}
else if (s[i] >= 'a' && s[i] <= 'z')
{
alpha[s[i] - 97]++;
}
i++;
}
for (i = 0; i < 26; i++)
{
if (alpha[i] != 0)
printf("%c : %d\n", i + 97, alpha[i]);
}
return 0;
}
gets 함수를 사용하는 경우는 위의 코드를 조금 수정해야 합니다.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main() {
char s[200] = { 0 };
int alpha[26] = { 0 };
int i = 0, a;
gets(s);
//fgets(s, 200, stdin);
while (s[i] != '\0')
{
if (s[i] >= 'A' && s[i] <= 'Z')
{
a = s[i] + 32; // 대문자를 소문자로 변경
alpha[a - 97]++;
}
else if (s[i] >= 'a' && s[i] <= 'z')
{
alpha[s[i] - 97]++;
}
i++;
}
for (i = 0; i < 26; i++)
{
if (alpha[i] != 0)
printf("%c : %d\n", i + 97, alpha[i]);
}
return 0;
}
반응형
'C_C++' 카테고리의 다른 글
(C언어) 10진수를 입력 받아 2진수로 변환하기 (1) | 2023.01.04 |
---|---|
(C/C++) 실행시간 측정하기:clock() (0) | 2022.12.29 |
(C언어) 가위 바위 보 게임 Play the rock-paper-scissors game (0) | 2022.12.18 |
(C/C++) 중복 숫자 제거 (0) | 2022.12.17 |
(C++) 문자열에서 문자열 검색 (찾기) (0) | 2022.12.14 |