Roy는 프로그래밍 대회에서 타이핑 속도를 높이고 싶었습니다. 그래서 그의 친구는 "빠른 갈색 여우가 게으른 개를 뛰어 넘는다"라는 문장을 반복해서 입력하라고 조언했습니다. (판 그램은 알파벳의 모든 문자를 한 번 이상 사용하여 구성된 문장입니다.)
문장을 여러 번 입력 한 후 Roy는 지루해졌습니다. 그래서 그는 다른 판 그램을 찾기 시작했습니다.
문장이 주어지면 Roy에게 그것이 pangram인지 아닌지 말하십시오.
입력 형식 입력은 s를 포함하는 행으로 구성됩니다.
제약 조건 s의 길이는 최대 103 개 (1≤ | s | ≤103)이며 공백, 소문자 및 대문자를 포함 할 수 있습니다. 문자의 소문자와 대문자는 같은 것으로 간주됩니다.
출력 형식 s가 팬 그램이면 팬 그램을 포함하는 라인을 출력하고, 그렇지 않으면 팬 그램이 아닌 출력.
void panagram(char s[])
{
int num1[26]={0};
int num2[26]={0};
int len=strlen(s);
int count=0,j,i;
for(i=0;i<len;i++)
{
if(s[i]>=97&&s[i]<=122)
{
num1[s[i]-97]++;
}
if(s[i]>=65&&s[i]<=90)
{
num2[s[i]-65]++;
}
}
for(j=0;j<26;j++)
{
if(num1[j]>=1||num2[j]>=1)
{ printf("%d\t\t%d\n",num1[j],num2[j]);
count++;
}
}
printf("%d\t",count);
if(count>=26)
printf("panagram");
else
printf("not panagram");
}
int main() {
char s[1000];
scanf("%s",s);
panagram(s);
return 0;
}
이 코드는 "Wepromptlyjudgedantiqueivorybucklesforthenextprize"와 같이 공백이없는 문자열에서는 잘 작동하지만 공백이있는 문자열에서는 작동하지 않습니다.- "우리는 다음 상품을 위해 골동품 상아 버클을 즉시 판단했습니다."내가 어디로 잘못 가고 있는지 알 수 있습니까? 내가 잘못 입력하고 있습니까?
scanf()
사용 대신
fgets(s,sizeof(s),stdin);
scanf()
문자열을 읽는 동안 사용 하는 것은 결코 좋은 생각이 아니므 로 사용 하는 것이 좋습니다.fgets()
추신 : fgets()
개행 문자와 함께 제공되며 개행 문자를 억제합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다