Есть ли в СИ оператор расширения области видимости?
Есть ли в СИ оператор расширения области видимости?
::
Решаю университетскую задачку, решение правильное, но не знаю, есть ли в СИ расширение области видимости:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<string>
enum Winner
{
kFirstPlayer,
kSecondPlayer,
kNoWinner
};
enum CurMode
{
kFirst,
kSecond
};
Winner Solve(char* str)
{
CurMode mode = kFirst;
char cur_symbol = 'a';
bool cur_winner_state = false;
for (int i = 0; i < strlen(str); i++)
{
if (str[i] == ' ')
{
if (!cur_winner_state)
{
if (mode == kFirst)
{
return Winner::kSecondPlayer;
}
else
{
return Winner::kFirstPlayer;
}
}
cur_symbol++;
cur_winner_state = false;
if (mode == CurMode::kFirst)
{
mode = CurMode::kSecond;
}
else
{
mode = CurMode::kFirst;
}
}
else
{
if (str[i] == cur_symbol)
{
cur_winner_state = true;
}
}
}
if (!cur_winner_state)
{
if (mode == kFirst)
{
return Winner::kSecondPlayer;
}
else
{
return Winner::kFirstPlayer;
}
}
return kNoWinner;
}
int main()
{
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
char buffer[600];
gets_s(buffer);
char* my_str = (char*)malloc(sizeof(char) * (strlen(buffer) + 1));
strcpy(my_str, buffer);
Winner ans = Solve(my_str);
if (ans == Winner::kFirstPlayer)
{
printf("PLAYER 1");
}
else
{
if (ans == Winner::kSecondPlayer)
{
printf("PLAYER 2");
}
else
{
printf("NO WINNER");
}
}
free(my_str);
}