简单字符串处理

最近在家赋闲,一方面焦急等待中科院的通知,一方面对于字符串处理与模式匹配颇多问题,下定决心从头学起。

家里有时环境比较乱,只好找些水题怡情,随时补充吧。

hdu 1200  To and Fro

本题范围比较小,直接将读进的数组转为二维数组,然后用二维数组先读列的方式输出既可。

 1 #include<stdio.h>
 2 #include<string.h>
 3 char input[2000];
 4 char ans[200][21];
 5 int main()
 6 {
 7     int T=1;
 8     while(T!=0)
 9     {
10         scanf("%d",&T);
11         if(T==0)break;
12         scanf("%s",input);
13         int count=0;
14         int L=strlen(input);
15     
16         int j=0,mj;
17         for(j=0;;j++)
18         {
19             for(int i=0;i<T;i++)
20             {
21                 if(j%2==0)
22                 {
23                     ans[j][i]=input[count];
24                     count++;
25                 }
26                 else
27                 {
28                     ans[j][T-i-1]=input[count];
29                     count++;
30                 }
31             }
32             if(j*T==L)
33             {
34                 mj=j;
35                 break;
36             }
37         }
38 
39         for(int i=0;i<T;i++)
40             for(int j=0;j<mj;j++)
41                 printf("%c",ans[j][i]);
42         printf("
");
43     }
44     return 0;
45 }
hdu 1200

hdu 1088 Write a simple HTML Browser

从网上随便搜索字符串相关题目,看到这个题目评价说比较特别,于是兴致勃勃的去读题,然后想也不想直接去拍,果然是个坑爹的模拟。

题意颤颤巍巍的看懂了,但还不是太确定,第一遍果然PE了。

后来改了几个地方:<br><hr>这两个其实没什么好说的,正常拍即可

我的问题主要在于正常字符带空格输出,最终决定采用将空格输出到本次单词的前面,随之而来的就是第一行第一个词的输出,改好这两处,再将文章结尾输出回车即可。

对于读入方式,没想到%s还是比较好的,不会读入空白符。。

 1 #include<stdio.h>
 2 #include<string.h>
 3 char a[80];
 4 int cur=0;
 5 int main()
 6 {
 7     while(scanf("%s",a)!=EOF)
 8     {
 9         if(a[0]=='<')
10         {
11             if(a[1]=='b')
12             {
13                 printf("
");
14                 cur=0;
15             }
16             if(a[1]=='h')
17             {
18                 if(cur!=0)printf("
");
19                 for(int i=0;i<80;i++)
20                     printf("-");
21                 printf("
");
22                 cur=0;
23             }
24         }
25         else
26         {
27 
28             if(cur+strlen(a)+1<=80)
29             {
30                 if(cur==0)
31                 {
32                     printf("%s",a);
33                     cur=strlen(a);
34                 }
35                 else
36                 {
37                     printf(" %s",a);
38                     cur+=strlen(a)+1;
39                 }
40             }
41 
42             else
43             {
44 
45                 printf("
");
46                 printf("%s",a);
47                 cur=strlen(a);
48             }
49         }
50 
51     }
52     printf("
");
53     return 0;
54 }
hdu 1088
原文地址:https://www.cnblogs.com/holyprince/p/3281144.html