Kód: Vybrať všetko
char * pole=new char[5];
ale nwm lebo ked tam takyto kod
Kód: Vybrať všetko
cin>>pole[0];
cin>>pole[1];
ako to mam sparvit aby mi to nacitalo 5 retazcov namiesto 5 znakov?? pls poradte
Kód: Vybrať všetko
char * pole=new char[5];
Kód: Vybrať všetko
cin>>pole[0];
cin>>pole[1];
Kód: Vybrať všetko
int retazcov = 5;
int dlzkaRetazca = 250; // jeden reťazec max. znakov
char ** pole = new char *[retazcov];
for(int i = 0; i < retazcov; i++)
pole[i] = new char [dlzkaRetazca];
Kód: Vybrať všetko
cin >> pole[index];Kód: Vybrať všetko
cout << pole[index]; // celý reťazec
cout << pole[index][znak]; // znak v reťazciVeď si chcel načítať 5 reťazcov, namiesto 5-tich znakov! Buď som ťa vôbec nepochopil alebo sám nevieš čo chceš.reDo napísal:a take ako som chcel ja sa neda???
Kód: Vybrať všetko
char *pole = new char[5];Kód: Vybrať všetko
int retazcov = 5;
int dlzkaRetazca = 250; // jeden reťazec max. znakov
char ** pole = new char *[retazcov]; // smerník na pole smerníkov typu char(pointrov, ukazateľov)
for(int i = 0; i < retazcov; i++)
pole[i] = new char [dlzkaRetazca]; Kód: Vybrať všetko
string retazce[5];
Kód: Vybrať všetko
char * pole[5];
pole[0]="AHOJ";
pole[1]="CAW";
pole[2]="Hoj";
atd.
Veď to je dvojrozmerné pole.reDo napísal:...
//autoeditácia príspevku ( 28 Jun 2009, 17:47 )
pozri ked nebudes nacitavat ale budes iba poriradzovat tak sa to da takto...Kód: Vybrať všetko
char * pole[5]; pole[0]="AHOJ"; pole[1]="CAW"; pole[2]="Hoj"; atd.
Kód: Vybrať všetko
char *pole[5]; // je to isté ako: char **pole = new char*[5];
pole[0] = new char[5];
strcpy(pole[0], "AHOJ\0");
pole[1] = new char[4];
strcpy(pole[1], "CAW\0");
...
Kód: Vybrať všetko
char * pole[5];
pole[0]="AHOJ";
pole[1]="CAW";
pole[2]="Hoj";
atd.
Kód: Vybrať všetko
#include <iostream>
#include <cstring>
#include <string.h>
using namespace std;
template <class T>
T max(T pole[], int pocet);
template <> char * max<char, int>(char * pole[], int pocet);
int main()
{
char * pole[3];
pole[0]="Adamko";
pole[1]="MATUSKOJEwow2";
pole[2]="MATUSKOJEwow1";
char * pom=max(pole, 3);
cout<<pom<<endl;
double poledou[5]={1, 2, 3, 4, 5};
double pomdo=max(poledou, 5);
cout<<pomdo<<endl;
system("pause");
return 0;
}
template <class T>
T max(T pole[], int pocet)
{
int i=0;
T max=pole[i];
for(;i<pocet;i++)
if(max<pole[i]) {
max=pole[i]; }
return max;
}
template <> char * max<char, int>(char * pole[], int pocet){
int * pompole= new int[pocet];
int x=0;
int pommax=strlen(pole[0]);
char * pom=NULL;
for(int i=0;i<pocet;i++){
pompole[i]=strlen(pole[i]);
if(pommax<pompole[i]){
pommax=pompole[i];
x=i; } }
pom=pole[x];
return pom;
}
Kód: Vybrať všetko
#include <iostream>
#include <cstring>
#include <string>
using namespace std;
template <typename T>
T maxn(T p[], int n)
{
T MAX = 0;
for (int i = 0; i < n; MAX = max(MAX, p[i]), ++i); //prechadzame kazdym prvkom pola a porovnavame ho s doposial najvacsim prvkom, ak je aktualny prvok vacsi, oznacime ho za najvacsi
return MAX;
}
template <> char * maxn(char *p[], int n)
{
char * MAX = NULL;
unsigned int max_length = 0;
for (int i = 0; i < n; ++i) { //prechadzame postupne vsetky retazce
if (strlen(p[i]) > max_length) { //porovname s doposial najvacsou dlzkou
max_length = strlen(p[i]); //ak je retazec dlhsi, oznacime ho za najdlhsi
MAX = p[i];
}
}
return MAX;
}
int main(void)
{
double p_d[6] = {3.141, 2.718, 1.618, 0.567, 1.414, 0.660};
int p_i[5] = {0, 1, 42, 47, -1};
char * p_c[5] = {"string", "c++", "011235813", "47", "lol"};
cout << "Najvacsie cislo typu double: " << maxn(p_d, 6) << endl;
cout << "Najvacsie cislo typu int: " << maxn(p_i, 5) << endl;
cout << "Najdlhsi retazec: " << maxn(p_c, 5) << endl;
return 0;
}