NOJ [1015] 一个简单的问题

把长度超过2的单词进行处理,保留首尾


#include<stdio.h>
#include<string.h>
#include<ctype.h>

char juzi[200];
int main()
{
	while(gets(juzi)!=NULL)
	{
		int j=0,p,q;
		while(juzi[j]!='\0')
		{
		    if(!isalpha(juzi[j]))
                 printf("%c",juzi[j++]);
            else
            {
     	         p=j+1;
     	         int alpha_cnt=1,first=j,last=j;
   			     while(1)
   			     {
       				 if(isalpha(juzi[p]))
        			 {
        				if(alpha_cnt==0)
        				  first=p;
 				        else
 				          last=p;
			        	alpha_cnt++;
           	              p++;
			         }  
 	        		 else 
        		        break;
			        }
	               if(alpha_cnt<=2)
	                 for(q=j;q<p;q++)
			          printf("%c",juzi[q]);
	               else
              		  printf("%c%d%c",juzi[first],last-first-1,juzi[last]);
		         j=p;
            }
		}
		printf("\n");
	}
	return 0;
}


你可能感兴趣的:(NOJ [1015] 一个简单的问题)