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

C++ Invalid operands to binary expression ? Wytłumaczycie ?

Object Storage Arubacloud
0 głosów
1,316 wizyt
pytanie zadane 20 października 2018 w C i C++ przez systemXYZ Początkujący (290 p.)

Hej ludzie ! Mały błąd jest w programie i nie wiem gdzie oraz nie wiem dlaczego. Pomoże ktoś zrozumieć ? :) Opis tak na szybko initials to miała być funkcja, która otrzymuje stałą referencję łańcucha i ma i ma zwrócić/wypisać pierwsze litery kolejnych słów. Można korzystać tylko z header cctype i string. 

#include <iostream>
#include <cctype>
#include <string>
void initials(const std::string &);
int main() {
    std::cout << initials("Mya Diana Luiidor") << std::endl;
    std::cout << initials(std::string("Stephan Stive Silver")) << std::endl;
}

void initials(const std::string &str) {
    if(!str.empty()){
        if(str[0] != ' ')
            std::cout << str[0];
        
        for(int i = 0; i<str.length();i++) {
            if(str[i] == ' ' && str[i] != '\0')
                std::cout << str[i+1];
    }

    }
    std::cout << std::endl;
}

 

1 odpowiedź

+1 głos
odpowiedź 20 października 2018 przez 0e85dc6eaf Dyskutant (8,840 p.)
wybrane 20 października 2018 przez systemXYZ
 
Najlepsza
Funkcja initials zwraca void. Nie możesz wyświetlić wyniku tej funkcji w mainie
komentarz 20 października 2018 przez systemXYZ Początkujący (290 p.)
w takim razie funkcja initials powinna zwracać string ? bo tak na moje myślenie jeżeli mam zwrócić pierwsze litery każdego wyrazu to tak jakbym musiał zwrócić jakiś nowo powstały z tych liter ciąg znaków, a w tym wypadku trzeba pewnie zmienić też funkcję chociażby zamiast std::cout << str[i+1]  będę musiał jakoś wpychać kolejne wyrazy do nowego ciągu.

Dobrze rozumiem ? :/
komentarz 20 października 2018 przez 0e85dc6eaf Dyskutant (8,840 p.)
Możesz tak zrobić, ale jeśli nie potrzebujesz później tych pierwszych liter to możesz po prostu wywołać tą funkcję, ona sama wyświetla wynik
komentarz 20 października 2018 przez systemXYZ Początkujący (290 p.)
Zrobiłem ! :) dziaaaaała ^^

DZIĘKUJĘ SPAP ! Miłego dnia :)

Podobne pytania

0 głosów
1 odpowiedź 2,300 wizyt
pytanie zadane 7 października 2018 w C i C++ przez maviek14 Nowicjusz (140 p.)
0 głosów
0 odpowiedzi 107 wizyt
pytanie zadane 24 maja 2021 w Android, Swift, Symbian przez theemperor Użytkownik (710 p.)
0 głosów
1 odpowiedź 1,485 wizyt

92,551 zapytań

141,397 odpowiedzi

319,528 komentarzy

61,936 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!

...