Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/18: Рейтинг темы: голосов - 18, средняя оценка - 4.72
0 / 0 / 0
Регистрация: 08.11.2010
Сообщений: 15
1

Как заменить функции strset и atoi?

09.11.2010, 19:42. Показов 3716. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Пожалуйста без приколов, мне реально интересно.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.11.2010, 19:42
Ответы с готовыми решениями:

функции atoi и itoa
у меня есть параметр типа unsigned char* , мне нужно его перевести в тип int, добавить к нему...

Функции atoi и atof
Здравствуйте, пишу парсер для файла определенного формата (фактически лексический и синтаксический...

Использование функции atoi()
элемент кода в котором проводится выбор дальнейшего действия.Нужно что-бы при выборе буквы...

В функции вычисления не работает функция atoi
Можете подсказать почему в функции вычисления выражения в постфиксной форме не работает функция...

7
В астрале
Эксперт С++
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
09.11.2010, 19:58 2
Versus12243, atoi через stringstream.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <sstream>
#include <iostream>
#include <string>
 
int main()
{
    std::string Str="100500";
    int numb;
    std::istringstream ist(Str);
    ist>>numb;
    std::cout<<numb<<'\n';
    return 0;
}
1
Эксперт С++
2347 / 1720 / 148
Регистрация: 06.03.2009
Сообщений: 3,675
10.11.2010, 08:45 3
Versus12243, boost::lexical_cast
C++
1
2
3
4
5
#include <boost/lexical_cast.hpp>
 
// ...
int n = boost::lexical_cast<int>("123"); // n == 123
// ...
0
Эксперт С++
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
10.11.2010, 10:10 4
Ну и sprintf
C
1
2
3
4
5
6
7
8
9
10
#include <stdio.h>
 
int main()
{
    int num = 42;
    char buf[80];
    sprintf(buf, "%d", num);
    printf("%s\n", buf);
    return 0;
}
Добавлено через 3 минуты
Насчет strset:
C
1
2
3
4
5
6
7
char my_strset(char* string, int c)
{
    char* p = string;
    while(*p)
        *p++ = (char) c;
    return string;
}
0
0 / 0 / 0
Регистрация: 08.11.2010
Сообщений: 15
11.11.2010, 21:52  [ТС] 5
Цитата Сообщение от ForEveR Посмотреть сообщение
Versus12243, atoi через stringstream.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <sstream>
#include <iostream>
#include <string>
 
int main()
{
    std::string Str="100500";
    int numb;
    std::istringstream ist(Str);
    ist>>numb;
    std::cout<<numb<<'\n';
    return 0;
}
Извини за беспокойство, спасибо за помощь. Но я совсем не врубаюсь как эта прога работает. Я заменил string Str="100500"; на char, потому что работаю в Dev c++, а он string как команду не воспринимает. Как ты заметил в проге я ноль, обьясни, если не сложно, эту прогу и может посоветуеш как быть с описаной проблемой.
P. S. извини что так много накатал, но реально надо учить прогу я ж студент ДНУ.
0
В астрале
Эксперт С++
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
11.11.2010, 22:02 6
Versus12243, с char таким способом не потащит вроде.

Добавлено через 56 секунд
Ошибся. Вполне себе работает.
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <sstream>
#include <iostream>
 
int main()
{
    char Str[]="100500";
    int numb;
    std::istringstream ist(Str);
    ist>>numb;
    std::cout<<numb<<'\n';
    return 0;
}
И так тоже.

C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <sstream>
#include <iostream>
 
int main()
{
    const char* Str="100500";
    int numb;
    std::istringstream ist(Str);
    ist>>numb;
    std::cout<<numb<<'\n';
    return 0;
}
0
Day
1179 / 989 / 83
Регистрация: 29.10.2009
Сообщений: 1,385
12.11.2010, 00:10 7
C
1
2
3
4
5
6
7
8
int MyAtoi (char *s)
{ int r =0; 
    for(;*s!='\0';s++) {
       if (*s<'0' || *s>'9') break;
       r = 10*r + *s-'0';
    }  
    return(r)
}
Ну еще нужно пропустить начальные пробелы и проанализировать знак
0
Maniac
Эксперт С++
1464 / 965 / 160
Регистрация: 02.01.2009
Сообщений: 2,820
Записей в блоге: 1
12.11.2010, 00:33 8
На счет atoi можно немного загнать =))
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
int __stdcall m_atoi(const char *str){
    __asm
    {
        xor ebx, ebx
        xor eax, eax
 
        mov esi, str
    run:
        lodsb 
        or al, al
        jz next
        and eax, 0Fh
        lea ebx, [ebx + ebx * 4]
        lea ebx, [eax + ebx * 2]
        jmp run
    next:
        mov eax, ebx
    }
}
int main(){
 
    int a = m_atoi("123456");
 
    std::cout << a << std::endl;
    return 0;
}
Использовать не рекомендую т. к. верил отладчику и результату..
1
12.11.2010, 00:33
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.11.2010, 00:33
Помогаю со студенческими работами здесь

Функции itoa и atoi: что это такое и с чем их едят?
Доброго времени суток! Помогите пожалуйста разобраться в функциях itoa и atoi. Похожие темки...

Функция Strset(s,n,l,t)
23. Функция StrSet(s,n,l,t) Назначение: установка l символов строки s, начиная с позиции n, в...

Функція StrSet(s,n,l,t)
Функція StrSet(s,n,l,t) Призначення: установлення l символів рядку s, починаючи с позиції n, в...

Как работает atoi
Почему bi==22 ??? #include&lt;iostream&gt; #include&lt;cstring&gt; #include &lt;stdio.h&gt; #include...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru