Napis nieznanej długości

0

Witam. Potrzebuję wczytać do zmiennej napis ze standardowego wejścia (scanf,gets...). Problem w tym, że nie wiem jak prawidłowo to zrealizować, żeby można było wczytać napis o jakiejś wielkiej długości (np 10tyś znaków). Oprócz tego będę potrzebował odwoływać się do pojedynczych znaków z tego napisu, np. sprawdzić czy piąty znak to 'x'. Jak coś takiego prawidłowo zrobić?

0

Lista..
Tego nie lubię w C, bo jakbyś jej nie napisał, to masz wrażenie, że nie wygląda za ładnie..
Tylko ja widzę Tu jeszcze jeden problem z tym wczytywaniem.. Do kiedy to wczytywać?
W C++ jakbyś miał wczytać znaki do char(Co jest głupotą, bo masz std::string) zrobisz Sobie:

 while(std::cin>>std::noskipws>>temp){
        dodaj(lista,temp);
        if(temp=='\n') break;
    }

i wrzucasz je bezproblemowa do listy. Ale flaga skipws jest w przestrzeni nazw std.
Nigdy nie uczyłem się C i może to nie jest wcale problem, bo na końcu coś tam stoi. Musisz poszukać.. a jak Ci się nie chce, to możesz sam zadbać o to, żeby zawszę coś tam stało..

0

No właśnie tylko problem w tym, że nie mogę pisać w C++ tylko w samym C. Listy wiem jak się robi, tylko właśnie problem jest taki, że nie wiem jak taka struktura miałaby wyglądać i jak zrealizować wczytywanie. Wczytywanie mogłoby się kończyć enterem. Jakieś podpowiedzi?

0
    char c;
    while ((c = getchar())!='\n') {
        putchar(c);
    }

Chyba takie coś wystarczy:

struct Znak{
    char znak;
    struct Znak*next;
};
0

No faktycznie zapomniałem o funkcji getchar()
Dzięki wielkie za pomoc

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0