Native/C
예제 3-3 진행중
aucd29
2013. 10. 2. 18:50
/***************************************************************************
*
* Date : 2005-04-18
* Copyright : aucd29
* E-mail : aucd29@daum.net
*
* s1에서 a-d식으로 입력하면 s2에 abcd식으로 나오게 하는 expand(s1,s2)를
* 작성 하여라 a-b-c, a-z0-9, -a-z같은 것도 처리되어야 한다.
*
***************************************************************************/
#include <stdio.h>
#include <string.h>
#define MAX 1000
void Expand(char *, char *);
void main(void)
{
char s1[MAX], s2[MAX];
//
// Input data
//
scanf("%s",s1);
Expand(s1, s2);
printf("%s\n%s\n",s1,s2);
}
void Expand(char *s1, char *s2)
{
int len = strlen(s1);
char first, end, i, j=0;
for(i=0;i<len;++i)
{
if(s1[i]=='-')
{
if(i==0){ s2[0]='-'; j++;}
else
{
//if(end==first)
// first = s1[i-1]+1;
//else
first = s1[i-1];
end = s1[i+1];
for(;first<=end;++j)
{
s2[j] = first;
++first;
}
++i;
}
}
}
s2[j]='\0';
}
*
* Date : 2005-04-18
* Copyright : aucd29
* E-mail : aucd29@daum.net
*
* s1에서 a-d식으로 입력하면 s2에 abcd식으로 나오게 하는 expand(s1,s2)를
* 작성 하여라 a-b-c, a-z0-9, -a-z같은 것도 처리되어야 한다.
*
***************************************************************************/
#include <stdio.h>
#include <string.h>
#define MAX 1000
void Expand(char *, char *);
void main(void)
{
char s1[MAX], s2[MAX];
//
// Input data
//
scanf("%s",s1);
Expand(s1, s2);
printf("%s\n%s\n",s1,s2);
}
void Expand(char *s1, char *s2)
{
int len = strlen(s1);
char first, end, i, j=0;
for(i=0;i<len;++i)
{
if(s1[i]=='-')
{
if(i==0){ s2[0]='-'; j++;}
else
{
//if(end==first)
// first = s1[i-1]+1;
//else
first = s1[i-1];
end = s1[i+1];
for(;first<=end;++j)
{
s2[j] = first;
++first;
}
++i;
}
}
}
s2[j]='\0';
}