Тема: String to int
Показать сообщение отдельно
Старый 18.07.2013, 14:35   #11
Platon
Знающий
 
Регистрация: 04.08.2006
Адрес: Россия
Сообщений: 297
Написано 39 полезных сообщений
(для 70 пользователей)
Ответ: String to int

Сообщение от impersonalis Посмотреть сообщение
int L=strlen(str)-1;
    bool Minus=(str[0]=='-');
    int S=0;
    for(int i=L,mul=1;i>=Minus;i--,mul*=10)
        S+=((str[i]-48)*mul);
    S*=1-2*Minus;
Зачем там strlen, двойное умножение и странное отрицание в конце? Проще надо быть:
int simple_atoi ( const char *str )
{
	int v = 0;
	
	const bool neg = ( str[ 0 ] == '-' );
	
	for( int i = neg ? 1 : 0; str[ i ] != 0; ++i )
	{
		v *= 10;
		
		v += ( str[ i ] - '0' );
	}
	
	return( neg ? -v : v );
}
но лучше не городить велосипеды и юзать стандартные.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
impersonalis (18.07.2013)