shuoj 1084 字符串问题

来源:互联网 发布:Java毫秒和日期的换算 编辑:程序博客网 时间:2024/05/16 16:16
#include<iostream>#include<cstring>using namespace std;bool used[1000];int main(){string str="";char c;memset(used,false,sizeof(used));while(scanf("%c",&c)==1 && c!='}'){str+=c;}str+=c;//收集信息string tmp="";int flag=0;for(int i=0;i<str.size();i++){if(str[i]!='\n'){tmp+=str[i];if(str[i]=='*' || str[i]=='/'){flag++;}}else{if(flag==4 || flag==0){cout << tmp;cout << endl;}tmp.clear();flag=0;}//什么时候更新flag的状态 }cout << '}'<<endl;} 字符串问题 

这道题首先要想明白的是他所给的两个条件


情况1

int a = 0; /*定义*/

这个说明了
/*  */不会在语句左右出现

情况2

int a = 0; /*/*非法*/注释*/ /*合法注释*/

这个合法注释其实也是非法注释 因为出现了注释之中嵌套注释


剩下的就是要想明白什么时候是输入结束的时候 正常程序 是以“}”为结束标识。可能这个没有考虑到函数问题。