#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; /*/*非法*/注释*/ /*合法注释*/
这个合法注释其实也是非法注释 因为出现了注释之中嵌套注释
剩下的就是要想明白什么时候是输入结束的时候 正常程序 是以“}”为结束标识。可能这个没有考虑到函数问题。