Ĺadny brzuch
Mam tablicę int xxx[10] i tablicę int yyy[10]. Obydwie są zapełnione liczbami. Chcę ich zawartość przenieść do tablicy int zzz[21]. Czy jest jakaś funkcja, która to zrobi czy muszę to napisać ręcznie np. za pomocą pętli for ?
Nie ma takiej funkcji :) Napisz sam ;)
memcpy()
memcpy()
Ta funkcja kopiuje z jednej tablicy do drugiej <_<
Chodzi o skopiowanie dwóch tablic do trzeciej :)
Np. tak:
#include <conio.h> #include <iostream> using namespace std; const int size_tab1 = 10; const int size_tab2 = 11; const int size_tab3 = 21; char tab1[size_tab1] ={"123456789"}; char tab2[size_tab2] ={"abcdefghij"}; char tab[size_tab3]; void copy2tab(char *wsk, char *wsk2, char *cel); int main(int argc, char *argv[]) { copy2tab(tab1,tab2,tab); cout << tab; getch(); return 0; } void copy2tab(char *wsk, char *wsk2, char *cel) { for(int i=0;i<size_tab1;i++) { if(wsk[i] == 0) break; cel[i]=wsk[i]; } for(int i=size_tab1-1, j=0; i<size_tab3 && j<size_tab2;i++,j++) { cel[i]=wsk2[j]; } }
Tu akurat potraktowałem zaartość tablicy jako C-stringi i przez nulle na końcu musiałem tutaj odjąć
int i=size_tab1-1
I na końcu tab[19], tab[20], tab[21] są puste czyli null. Nie będzie dobrze działał jeśli nie zapełnisz całkowicie tablic.
Śpieszę się coś tu może być jeszce niejasne, nawet dla mnie ^_^
Użytkownik KlyYmek edytował ten post 07 październik 2006, 12:51
char a[10]={"abcdefghi"};
char b[10]={"123456789"};
char c[21];
memcpy(c,a,sizeof(char)*9);
memcpy(&c[9],b,sizeof(char)*9);
std::copy(a, a+10, c);
std::copy(b, b+10, c+10);
Pozdrawiam,
TeMPOraL.
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
Nie ma takiej funkcji :) Napisz sam ;)
memcpy()
memcpy()
Ta funkcja kopiuje z jednej tablicy do drugiej <_<
Chodzi o skopiowanie dwóch tablic do trzeciej :)
Np. tak:
#include <conio.h> #include <iostream> using namespace std; const int size_tab1 = 10; const int size_tab2 = 11; const int size_tab3 = 21; char tab1[size_tab1] ={"123456789"}; char tab2[size_tab2] ={"abcdefghij"}; char tab[size_tab3]; void copy2tab(char *wsk, char *wsk2, char *cel); int main(int argc, char *argv[]) { copy2tab(tab1,tab2,tab); cout << tab; getch(); return 0; } void copy2tab(char *wsk, char *wsk2, char *cel) { for(int i=0;i<size_tab1;i++) { if(wsk[i] == 0) break; cel[i]=wsk[i]; } for(int i=size_tab1-1, j=0; i<size_tab3 && j<size_tab2;i++,j++) { cel[i]=wsk2[j]; } }
Tu akurat potraktowałem zaartość tablicy jako C-stringi i przez nulle na końcu musiałem tutaj odjąć
int i=size_tab1-1
I na końcu tab[19], tab[20], tab[21] są puste czyli null. Nie będzie dobrze działał jeśli nie zapełnisz całkowicie tablic.
Śpieszę się coś tu może być jeszce niejasne, nawet dla mnie ^_^
Użytkownik KlyYmek edytował ten post 07 październik 2006, 12:51
char a[10]={"abcdefghi"};
char b[10]={"123456789"};
char c[21];
memcpy(c,a,sizeof(char)*9);
memcpy(&c[9],b,sizeof(char)*9);
std::copy(a, a+10, c);
std::copy(b, b+10, c+10);
Pozdrawiam,
TeMPOraL.