문자열로 입력된 문장에 대해 알파벳 별로 몇 개의 문자가 입력되었는지를 카운트를 하는 프로그램을 작성하시오. 문장에는 알파벳 외에 숫자나 특수기호 그리고 공백(space bar)이 사용되는데 이들은 모두 기타 문자로 카운트하시오. 단, 알파벳 문자는 대소문자 구분없이 카운트하고, 입력할 문장은 공백을 포함하여 최대 99자로 가정합니다.
#include <stdio.h>
#include <string.h>
int main(void)
{
char str[100];
char ap[27]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
char ap2[27]={'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};
int a[27]={0};
int b=0;
int index;
printf("문장에서 알파벳과 기타문자 count\n\n");
printf("문장을 입력하고 Enter\n");
printf("문장>");
gets(str);
printf("\n결과\n");
printf("알파벳 count\n");
index = strlen(str);
int i, j;
for(i=0;i<26;i++)
{
for(j=0;j<index;j++)
{
if(ap[i]==str[j] || ap2[i]==str[j])
a[i]+=1;
}
if(a[i]>0)
printf("%c\t%d\n", ap2[i], a[i]);
}
for(i=0;i<index;i++)
if((str[i]>='a' && str[i]<='z') || (str[i]>='A' && str[i]<='Z'));
else
b+=1;
printf("기타\t%d\n", b);
return 0;
}
// 실행 결과
#include <stdio.h>
#include <string.h>
int main(void)
{
char str[100];
char ap[27]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
char ap2[27]={'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};
int a[27]={0};
int b=0;
int index;
printf("문장에서 알파벳과 기타문자 count\n\n");
printf("문장을 입력하고 Enter\n");
printf("문장>");
gets(str);
printf("\n결과\n");
printf("알파벳 count\n");
index = strlen(str);
int i, j;
for(i=0;i<26;i++)
{
for(j=0;j<index;j++)
{
if(ap[i]==str[j] || ap2[i]==str[j])
a[i]+=1;
}
if(a[i]>0)
printf("%c\t%d\n", ap2[i], a[i]);
}
for(i=0;i<index;i++)
if((str[i]>='a' && str[i]<='z') || (str[i]>='A' && str[i]<='Z'));
else
b+=1;
printf("기타\t%d\n", b);
return 0;
}
// 실행 결과
'공부 > c언어' 카테고리의 다른 글
[c언어] 포인터 변수에서 간접연산자 *의 역할 (0) | 2011.06.09 |
---|---|
[c언어] 메모리 주소를 저장하는 포인터 변수 (0) | 2011.06.09 |
[c언어](연습문제) 문자열을 입력받아 ASCII코드값을 더한 값으로 출력 (0) | 2011.06.03 |
[c언어](연습문제) 화폐단위별로 화폐의 개수를 출력 (0) | 2011.06.03 |
[c언어](연습문제) 2차원배열 행렬의 행과 열의 위치를 바꾸어서 출력 (0) | 2011.06.03 |