poj1951(문자열, 사고방식이 뚜렷하고 좋은 프로그램)

1366 단어
제목은 이해하기 쉽다
1:모음 없음
2: 중복된 알파벳 없음
3: 출력 전후 공백 없음
4: 구두점 앞에 공백 없음
5: 공백은 인접할 수 없습니다.
#include<stdio.h>
#include<string.h>

bool a[200];
char str[1000],ans[1000];

int main()
{
    //  gets           NULL
    while(gets(str)!=NULL)
    {
        memset(a,0,sizeof(a));
        int pos=0;
        for(int i=0;i<strlen(str);i++){
            if(str[i]=='A'||str[i]=='E'||str[i]=='O'||str[i]=='U'||str[i]=='I')
                continue;

            if(str[i]==' '){
            //         pos-1     0,  ||   
                if(pos==0||ans[pos-1]==' ')
                    continue;
                //                     
                ans[pos++]=' ';
            }
            //         
            else if(str[i]>='A'&&str[i]<='Z'){
                if(!a[str[i]-'A']){
                    ans[pos++]=str[i];
                    a[str[i]-'A']=1;
                }
            }
            //      ,          ,     (        )
            else{
                if(pos>0&&ans[pos-1]==' ')
                    pos--;
                ans[pos++]=str[i];
            }
        }
        ans[pos]='\0';
        printf("%s
",ans); } return 0; }

좋은 웹페이지 즐겨찾기