- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
int __fastcall TForm1::iscomm(AnsiString str)
{
int i=1;
while (str[i]==' ')
i++;
if (str[i]=='#')
{
return 1;
}
else
{
return 0;
};
};
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+141.4
int __fastcall TForm1::iscomm(AnsiString str)
{
int i=1;
while (str[i]==' ')
i++;
if (str[i]=='#')
{
return 1;
}
else
{
return 0;
};
};
borland C++.
Функция определяет, является ли строка комментарием (начинается с #)
guest 26.03.2009 20:02 # 0
guest 26.03.2009 20:12 # +3
То, что индекс с 1, это правильно, т.к. в VCL AnsiString именно таков. А в остальном прослеживается дельфи, причем среднего какчества.
Нормальный бы, конечно, так написал:
guest 18.10.2009 09:54 # −1.2
guest 27.03.2009 03:33 # +6
хм. а я подумал, что правильнее сделать сначала Trim() и если у получившейся строки осталось хоть что-то (length > 0), то проверить её первый символ. Наверное я ненормальный
guest 27.03.2009 11:17 # +2
Я бы регэксп зафигарил.
Кстати, если в строка будет начинаться с символа табуляции, то вернется неправда в общем случае.
guest 27.03.2009 11:23 # +2
а еще имя метода is*** предполагает логический тип возвращаемого значения.
guest 27.03.2009 19:24 # 0
K O, в Сишном рантайме возвращают int
например,
guest 28.03.2009 13:42 # +2
Вообще-то bool на самом деле является int или char. Зависит от среды разработки. Так-то
guest 31.03.2009 08:17 # +2
> Вообще-то bool на самом деле является int или char. Зависит от среды разработки. Так-то
Вообще-то современным стандартом bool определен как эквивалент следующего определния:
typedef enum {false, true} bool;
И никакие ни char ни int тут рядом не лежали. Так-то
guest 01.04.2009 16:16 # +2
Вообще то любой enum любым компилятором транслируется в int.
Так-то :)
guest 23.06.2009 13:25 # 0
Вообще-то нет :)
guest 11.08.2009 15:42 # 0
guest 21.08.2009 13:11 # 0
{
char *p_str = str.c_str();
while ((*p_str == ' ') || (*p_str == '\t')) p_str++;
return *p_str == '#';
}
а мне больше так нравится ;)
guest 18.10.2009 09:56 # 0