Problem M. Variable Shadowing - 문자열 폭력 처리

1417 단어
보기만 해도 짜증나. 제목이 이렇게 길어.
남의 코드를 참고하다.폭력이 너무 적다
#include <cstdio>
#include <cmath>
#include <cstring>
#include <string>
#include <algorithm>
#include <iostream>
#include <queue>
#include <map>
#include <set>
#include <vector>
using namespace std;
char tm[55][55];

struct position
{
	int x,y;
	
};
position pos[55*55+5];

int main()
{ 
	string s;
	
	int n,i,j;
	cin>>n;
	getchar();
	int copn=n;

	for (i=1;i<=n;i++) 

		gets(tm[i]+1); 
	n=copn;
	int ok=0;
	s+='0';
	for (i=1;i<=n;i++)
	{
		for (j=1;j<=strlen(tm[i]+1);j++)
		{
			s+=tm[i][j];
			pos[++ok].x=i;
			pos[ok].y=j;
		}
		
	}
	
	
    for(  i=1;i<s.size();i++)
	{

		if(s[i]<='z'&&s[i]>='a')
		{
				int flag=0;//       nearnest
				int ans=0;	//      “{}”

				for (j=i-1;j>=1;j--)
				{
					if (ans==0&&s[j]==s[i])  //  ans==0 "   "j i    nearnest
					{
   printf("%d:%d: warning: shadowed declaration of %c, the shadowed position is %d:%d
",pos[i].x,pos[i].y,s[i],pos[j].x,pos[j].y); flag=1; // nearest ; } if (flag) break; if (s[j]=='}') ans++; if (s[j]=='{'&&ans>0) // ans==0 { , ans>0 } } nearest, { ans--; } } } return 0; }

좋은 웹페이지 즐겨찾기