Wczytywanie danych

0

Hej,
Chcę zrobić program który wczyta od użytkownika nieokreślona liczbę znaków. Wiem jak zapisać te znaki do tablicy.
Dam przykład
wejście
1 linijka fdkdfj to zapisuje do pierwszej tablicy
2 linijka fdsfdsfds kolejną linijkę do drugiej tablicy
Mój problem polega na tym ,że nie wiem jak oddzielić dwie tablice. Myślałem nad pętlami ale nie znam ilości znaków w pierwszym wierszu. Czy istnieje jakieś rozwiązanie do tego problemu. Być może dostałem nie poprawne zadanie ale wole się upewnić.

0

Korzystaj z kolekcji np. std::vector https://en.cppreference.com/w/cpp/container/vector

BTW. Pokaż kod, który do tej pory napisales

0

Szczerze mówiąc programuje od trzech tygodni. I w liceum nie mieliśmy jeszcze kolekcji vector, ale coś już z nią robiłem. Tylko powinno się dać to zrobić bez tego, ale chętnie się nauczę tej kolekcji. Mniej więcej wiem jak zrobić ten program. Tylko mam problem z tym wczytywaniem. Cały program ma wczytywać od użytkownika na wejściu wzór np efde
a potem wczytać ciąg znaków eddeffee
i wypisać ile znaków ze wzorca się powtórzyło czyli zrobiłbym to pętle for i jeśli element by się powtarzał do bym dodawał do zmiennej powtórzenia za każdym razem jedynkę.
Tylko mam problem z tym wczytaniem. Co myślisz o funkcji while(!cin.eof)? Może ona by podziałała.

0
string a,b;
getline(cin,a);
getline(cin,b);
0

Zrobiłem coś takiego. Mimo to nadal nie działa. Wydaje mi się że problem leży po stronie tego że za rozmiar przyjąłem 1000. Jak uzależnić rozmiar tablicy od ilości znaków w wierszu.

0

#include <iostream>
using namespace std;

int main()
{

char arr[1000];
char tab[1000];
int licznik=0;

cin.getline(arr,1000);
cin.getline(tab,1000);
for(int i=0;i<100;i++)
	for (int j = 0; j < 100; j++)
	{
		if (arr[i] == tab[j])
			licznik++;
	}
cout << licznik;

}

0

Czemu nie Zrobisz tak jak w linku, który podesłałem; MAsz dwa stringi wejściowe w wektorach i dalej coś z nimi Robisz.

#include<vector>
#include<sstream>
#include<iostream>
using namespace std;

int main(int argc, char **argv){	
	string line;
	string line1;
	getline(cin, line);
	getline(cin, line1);
	istringstream iss(line);
	istringstream iss1(line1);
	vector<string> strVec;
	vector<string> strVec1;
	for (string s; iss >> s; strVec.push_back(s));
	for (string s; iss1 >> s; strVec1.push_back(s));
	for (auto &e : strVec) {
		cout << e << " ";
	}
	cout << "\n";
	for (auto &e : strVec1) {
		cout << e << " ";
	}

	cout << "\n";
	return 0;
}

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