科研工作者经常要向不同的期刊投稿。但不同期刊的参考文献的格式往往各不相同。有些期刊要求参考文献所发表的期刊名必须采用缩写形式,否则直接拒稿。现对于给定的期刊名,要求按以下规则缩写: (1)长度不超过4的单词不必缩写; (2)长度超过4的单词仅取前4个字母,但其后要加“.”; (3)所有字母都小写。
输入格式:
首先输入一个正整数T,表示测试数据的组数,然后是T组测试数据。 每组测试输入一个包含大小写字母和空格的字符串(长度不超过85),单词由若干字母构成,单词之间以一个空格间隔。
输出格式:
对于每组测试,在一行上输出缩写后的结果,单词之间以一个空格间隔。
输入样例:
2
Ad Hoc Networks
Iene Transactions on Nanotechnology
输出样例:
ad hoc netw.
iene tran. on nano.
#include <stdio.h>
#include <string.h>
int main()
{
int i,j,k,t,x=0,y,p;
char a[100]={'\0'};
char b[100][100]={'\0'};
int c[100];
char ch;
scanf("%d\n",&t);
for(k=1;k<=t;k++)
{
gets(a);
strlwr(a);
j=0;
y=1;
c[0]=0;
for(i=0;;i++)
{
ch=a[i];
if(ch!=' '&&ch!='\0')
{
j++;
}
if(ch==' '||ch=='\0')
{
c[y]=i;
if(y==1)
{
if(j<=4)
{
memcpy(&b[x][0],&a[0],j);
x++;
}
if(j>4)
{
memset(&a[4],'.',1);
memcpy(&b[x][0],&a[0],5);
x++;
}
}
if(y!=1)
{
if(j<=4)
{
memcpy(&b[x][0],&a[c[y-1]+1],j);
x++;
}
if(j>4)
{
memset(&a[c[y-1]+5],'.',1);
memcpy(&b[x][0],&a[c[y-1]+1],5);
x++;
}
}
y++;
j=0;
}
if(ch=='\0')
{
break;
}
}
memset(&b[x][0],' ',1);
x++;
}
for(p=0;;p++)
{
ch=b[p][0];
if(ch=='\0')
{
break;
}
printf("%s",&b[p][0]);
ch=b[p+1][0];
if(ch==' ')
{
printf("\n");
}
if(ch==' ')
{
p++;
}
if(ch!='\0'&&ch!=' ')
{
printf(" ");
}
}
return 0;
}