zoj 1243 URLs

很繁琐的一道题。

 

将网址的一些东西分开,真够麻烦的。我想起来那个那个站长的网站分析某个网站的流量。把子网站的网址输入后,分析的是总站的流量。哈~用的是这个原理么??嘻嘻。

 

练习使用了memset函数,用来初始化的好函数~~~~~用了好多。。。

 

我是把每个部分存到temp这个数组里,然后输出,其实可以直接输出滴说。。。题目要求没看清,导致代码冗长。。。没有看到所说的一些限制。。。基本是看了样例输入输出就开始做了。。。悲剧

 

嗯,容易PE。。。

 

#include <stdio.h> #include <string.h> #include <stdlib.h> int main(void) { int ncases,i,j,k,len,n; char str[63],temp[63]; scanf("%d",&ncases); for( j = 1 ; j <= ncases; j++) { scanf("%s",str); len = strlen(str); printf("URL #%d/nProtocol = ",j); n = 0; i = 0; while(str[i]!=':'&&str[i+1] !='//'&& str[i+2] != '//') { printf("%c",str[i]); i++; } printf("/n"); memset(temp,'/0',sizeof(temp)); printf("Host = "); n = 0; for(k = i+3;k < len;k++ ) { if(str[k]==':'||str[k]=='/') break; temp[n++] = str[k]; } puts(temp); if(k == len ) { printf("Port = <default>/nPath = <default>/n/n"); continue; } memset(temp,'/0',sizeof(temp)); n = 0; if(str[k] == ':') { k++; while(str[k]!='/'&& (k <len)) temp[n++] = str[k++]; printf("Port = "); puts(temp); memset(temp,'/0',sizeof(temp)); k++; if(k < len) { n = 0; while(k < len) temp[n++] = str[k++]; printf("Path = "); puts(temp); } else printf("Path = <default>/n"); } if(str[k]=='/') { k++; printf("Port = <default>/n"); n = 0; while(k < len) temp[n++] = str[k++]; printf("Path = "); puts(temp); } printf("/n"); } system("pause"); return 0; }

你可能感兴趣的:(zoj 1243 URLs)