Skocz do zawartości

[c++] Stringi Z C, A Klasa String


lszk

Rekomendowane odpowiedzi

Zrobiłem taki mały progs do wyświetlenia podanego stringu od końca. Na tablicach mi wyszedł:

#include <iostream>
#include <string>
using namespace std;
int main()
{
 const int ile = 20;
 char string[ile];
 cin.getline(string, ile);
 for(int i=strlen(string);i>=0;i--)
 {cout << string[i];}
getchar();	
}

A właśnie na klasie mam problem. Mam coś takiego:

#include <iostream>
#include <string>
using namespace std;
int main()
{
 string q;
 int ile;
 char text[20];
 cin >> q;
 cin.ignore();
 ile = q.length();
 for(int i=ile;i>=0;i--)
 {
cout << 
 }
getchar();
}

Nie wiem, jak to dalej tknąć. Nie wiem nawet, czy można by to było zrobić dodatkowo bez użycia tej jednej tablicy.

 

PS. Mam jeszcze pytanie co do funkcji strupr i strlwr. Działają on komuś? Gcc wypluwa mi, że nie są zadeklarowane.

Odnośnik do komentarza
Udostępnij na innych stronach

#include <iostream>
#include <string>
using namespace std;
int main()
{
string q;
int ile;
cin >> q;
cin.ignore();
ile = q.length();
for(int i=ile; i>=0; i--)
{
        string strZnak(q, i, 1);
        cout << strZnak;
}
getchar();
}

 

string strZnak(q, i, 1);

 

skopiuj do strZnak z q jeden znak zaczynając od i-tego znaku

 

S. Mam jeszcze pytanie co do funkcji strupr i strlwr. Działają on komuś? Gcc wypluwa mi, że nie są zadeklarowane.

 

Nie działa. Trzeba dołączyć #include <sdgstd.h>

 

PS: polecam: kurs c++

Odnośnik do komentarza
Udostępnij na innych stronach

Nie działa. Trzeba dołączyć #include <sdgstd.h>

Nie mam takiego nagłówka. Heh, zawsze pozostają funkcje toupper i tolower+pętle wink.gif

 

Dzięki za kod do tej klasy, ale jednak mi bardziej tablice odpowiadają.

A co do kursu, to czytam(nawet książke), ale tam jest to na tablicach pokazane. A za linka dzięki.

Odnośnik do komentarza
Udostępnij na innych stronach

Dzięki za kod do tej klasy, ale jednak mi bardziej tablice odpowiadają.

 

String to potężnie genialne narzędzie smile.gif

 

Polecam napisa jakiś prosty parser korzytając tylko z tablic znaków ..... i do zobazenia za kilka miesięcy tongue.gif

Odnośnik do komentarza
Udostępnij na innych stronach

Wiem, że ta klasa powstała, by ludziom życie ułatwić. Te wszystkie problemy z pamięcią etc. Ale na tym poziomie, na jakim ja jestem, to tablice wystarczą z nawiązką wink.gif A z tą klasą, to i tak mam zamiar się bliżej "zapoznać" w "swoim czasie" wink.gif

 

[edit]

 

PS. A jeszcze jedno pyt. W przypadku użycia tej klasy string, jak teraz użyć funkcji getline (cin.getline), aby w stringu mogły występować białe znaki? A może znowu jest jakiś inny sposób na to?

 

[edit2]

 

getline(cin, q);

 

tongue.gif

Edytowane przez lszk
Odnośnik do komentarza
Udostępnij na innych stronach

Ogolnie korzysta sie juz z gotowych bibliotek, ale osobicscie uwazam, ze bardzo dobrym rozwiazaniem jest napisanie takiej, gdy zaczyna sie przygoed z jakims jezykiem. Od podstaw sie buduje cos takiego, z czasem przepisuje sie kod na nowo... IMHO bardzo dobry sposob na poznanie jezyka... Nie musi to bys od razu taka zaawansowana klasa, ale dzialajaca w sposob zadowalajacy tongue.gif

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...