• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Działanie Atoi - Cpp

Object Storage Arubacloud
0 głosów
458 wizyt
pytanie zadane 18 października 2021 w C i C++ przez onest Początkujący (250 p.)
przywrócone 18 października 2021 przez onest

Dzień Dobry.

Znalazłem ciekawą funkcję - Atoi. Pomyślałem, że fajnie by było jej użyć do tablic... ale ona nawet nie działa ze zwykłymi stringami xD
Jakby kompletnie nie widziała zmiennych. 

Bardzo proszę o radę od bardziej doświadczonych ode mnie kolegów.

#include <iostream>
#include <stdlib.h>

int main()
{
    std::string s1 = "1";
    std::string s2 = "2";
    std::cout << "String: " << s1 + s2 << std::endl;
    /*NIC Z TYCH NIE DZIALA
    std::cout << "Atoi: " << atoi(s1) + atoi(s2) << std::endl;   
    std::cout << "Atoi: " << atoi(s1 + s2) << std::endl;*/
    std::cout<<"GO GO GO: "<<atoi("1") + atoi("2") << std::endl; // to dziala
    return 0;
}

 

2 odpowiedzi

+3 głosów
odpowiedź 18 października 2021 przez adrian17 Ekspert (344,860 p.)
wybrane 18 października 2021 przez onest
 
Najlepsza
No tak, bo atoi() to funkcja z C; C nie wie nic o std::stringach, on tylko wie o "starych" stringach ("c-string"), czyli wskaźnikach (char*) na tablice znaków kończące się zerem.

Dlatego atoi("2") działa, bo "2" to literał na tablicę znaków a nie std::string.

Skoro używasz C++a i std::stringi, to do konwersji string->int sensowniej użyć stoi(), co dosłownie znaczy String to Int.

https://godbolt.org/z/GYoodff1c

https://en.cppreference.com/w/cpp/string/basic_string/stol
komentarz 18 października 2021 przez NewEraOfPeace Gaduła (4,790 p.)
NIe za szybki czasem jesteś? ;d
komentarz 18 października 2021 przez onest Początkujący (250 p.)
Dzięki wielkie.
Mirosław Zelent użył tej funkcji w swoim kursie, więc nie spodziewałem się że może być ona  przestarzała.

Pozdrawiam.
komentarz 21 października 2021 przez TOWaD Mądrala (5,700 p.)
przywrócone 23 października 2021 przez TOWaD
Ja wpisałem wyszukiwarce "atoi("data".data)" a tu takie kwiatki:

https://stackoverflow.com/questions/56634507/safely-convert-stdstring-view-to-int-like-stoi-or-atoi

https://cpp-polska.pl/post/wydajnosc-stdstringview-vs-stdstring

i można sobie poczytać dla rozrywki.
komentarz 22 października 2021 przez NewEraOfPeace Gaduła (4,790 p.)
Nie do końca rozumiem z czym problem?
komentarz 23 października 2021 przez TOWaD Mądrala (5,700 p.)
Znając i rozumiejąc starsze technologie łatwo można sobie wygooglować nowsze.
0 głosów
odpowiedź 18 października 2021 przez NewEraOfPeace Gaduła (4,790 p.)

atoi to funkcja z C, która przyjmuje C-string, w C++ pod postacią const char*. Aby funkcja zadziałała dla stringów wyślij po prostu `s1.c_str()`, `s2.c_str()` itd, lub użyj C++owej alternatywy - stoi

Podobne pytania

0 głosów
2 odpowiedzi 733 wizyt
pytanie zadane 29 lutego 2016 w C i C++ przez Philip Bywalec (2,320 p.)
0 głosów
6 odpowiedzi 4,547 wizyt
pytanie zadane 12 sierpnia 2015 w C i C++ przez gagyn Stary wyjadacz (11,050 p.)
0 głosów
1 odpowiedź 637 wizyt
pytanie zadane 17 maja 2015 w C i C++ przez Mak10 Nowicjusz (150 p.)

92,570 zapytań

141,422 odpowiedzi

319,644 komentarzy

61,959 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...