标签:
思路:
当时交了好多次。需要注意;
1. 0k后面紧跟着0时,就只输出0k0,如果是0k000005还是输出0k0
2. 0k0k5时,应该输出0k0
3.如果0k第i+2个不是0,在所要求的范围内,那就输出这个字符,直到不满足要求字符break; 然后继续往后判断~
4.如果0k后面不满足所要求给的字符的话,就不输出0k
#include<iostream> #include<stdio.h> #include<string.h> using namespace std; char a[1000001]; int main() { int len,i,j,flag=0; gets(a); len=strlen(a); for(i=0;i<len-2;i++) { if(a[i]=='0'&&a[i+1]=='k') { if(a[i+2]>='A'&&a[i+2]<='E'||a[i+2]>='0'&&a[i+2]<='9') printf("0k"); if(a[i+2]=='0') { printf("0"); i=i+2; printf("\n"); } else{ flag=0; for(j=i+2;j<len;j++) { if(a[j]>='A'&&a[j]<='E'||a[j]>='0'&&a[j]<='9') { printf("%c",a[j]); flag=1; } else break; } i=j; if(flag) printf("\n"); } } } return 0; }
版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:
原文地址:http://blog.csdn.net/zuguodexiaoguoabc/article/details/46942743