int main(int argc, char *argv[]) { char *zrodlo="randomowy tekst",*cel; cel=malloc(sizeof(char)*strlen(zrodlo)); kopiuj(cel,zrodlo); printf("Pierwotny string: %s\nSkopiowany string: %s",zrodlo,cel); return 0; }
int main(){ char x[] = "abcdf"; char *y; y = (char *)malloc(sizeof(char)*5); kopiuj(y, x); printf("%s\n", y); }
int main() { char a[255],b[255]; scanf("%s",a); kopiuj(a,b); printf("%s\n",b); return 0; };
/** * \brief zwieksza rozmiar tablicy o 1 */ void stos::zwieksz_o_1() { int* s_tab; s_tab=tab; tab=new int[rozmiar+1]; kopiuj(s_tab); if (s_tab != NULL) delete s_tab; rozmiar+=1; }
int main(int argc, char *argv[]){ FILE *fp, *fp2; char c; int i; fp2 = fopen("plik2.txt", "a"); for(i = 0; i < argc; i++){ fp = fopen(argv[i], "r");//r+w kopiuj(fp, fp2); fclose(fp); } fclose(fp2); }
void stos::zmniejsz() { int* s_tab; if (rozmiar==0)return; if (aktualna==0)delete[] tab; else { s_tab = tab; tab = new int[rozmiar/2]; kopiuj(s_tab); if (s_tab != NULL) delete[] s_tab; rozmiar /= 2; } }
/** * \brief zweikasza dwukrotnie rozmiar stosu gdy brakuje miejsca */ void stos::zwieksz_dwa() { int* s_tab; if (rozmiar == 0) { tab = new int[1]; rozmiar += 1; } else { s_tab = tab; tab = new int[rozmiar*2]; kopiuj(s_tab); if (s_tab != NULL) delete[] s_tab; rozmiar *= 2; } }
int main (int arc, char ** argv) { int i,j; int tab_int[5]; double tab_double[5]; int *wsk_int; double *wsk_double; wsk_int=&(tab_int[0]); //Prosze pamietac ze nazwa tablicy jest jednoczesnie adresem jej zerowego elementu //a zatem definicja mogla by wygladac tak wsk_int=tab_int wsk_double=tab_double; //zastosowalismy to co jest napisane powyzej //Zobaczmy jak zachowyje sie wskaznik przy jego inkrementacji o jeden printf("\nJak zmieniaja sie wskazniki w trakcie inkrementacji \n"); for(i=0;i<5;i++) printf("i=%d, wsk_int=%ud, wsk_double=%d\n",i, (unsigned int)(wsk_int+i), (unsigned int)(wsk_double+i)); printf("\n\n"); //Widzimy zatem ze mozemy wskazniki wykorzystywac do pracy na tablicach //uzupelnienie tablicy tab_int for(i=0;i<5;i++) tab_int[i]=i; //ustawiamy wskaznik na 2 elencie tablicy wsk_int=&(tab_int[2]); //wyspisujemy elementy tablicy od tab_int[2] for(i=0;i<3;i++) printf("*(wsk_int+%d)=%d\n",i,*(wsk_int+i)); //tak samo mozemy uzupelniac elementy tablicy //ustawiamy wskaznik na elemencie zerowym tab_double wsk_double=tab_double; //nazwa tablicy to adres jej zerowego elementu for(i=0;i<5;i++) *(wsk_double+i)=i*10.0; printf("\nTablica tab_double po zainicjalizowaniu wskaznikowym:\n"); for(i=0;i<5;i++) printf("tab_double[%d]=%f\n",i,tab_double[i]); //UWAGA: WSKAZNIKI MOGA ZASTAPIC NAM TABLICE (PATRZ FUNCKJE POWYZEJ) //W zastosowaniu do funkcji moga byc ich argumentami lub typami zwracanymi printf("\nUzycie funkcji:\n"); //inicjalizujemy zerami inicjalizuj(tab_int,5,0); printf("Po inicjalizacji zerami:\n"); wypisuj(tab_int,5); //nowa tablica do ktorej skopiujemy stara int *wsk_kopia; //najpierw zainicjalizemy stara samymi 5 inicjalizuj(tab_int,5,5); wsk_kopia=(int*)calloc(5,sizeof(int)); kopiuj(tab_int,wsk_kopia,5); printf("\nKopia naszej tablicy wyglada tak \n"); wypisuj(wsk_kopia,5); //Troszke na temat artmetyki wskaznikow: //dozwolone sa operacje dodawania, odejmowania , porownan ==, != < > <= >= //w odniesieniu do tablic moze byc to przydatne w celu sprawdzenia liczby //elementow lub realcji odleglosci miedzy nimi int tablica[15]; int *wsk_a,*wsk_b; wsk_a=&(tablica[5]); wsk_b=&(tablica[10]); printf("\nwsk_b-wsk_a=%d - odleglosc miedzy elementami tablicy\n",wsk_b-wsk_a); if(wsk_a!=wsk_b) printf("Wskazniki pokazuja na rozne elementy tablicy\n"); wsk_a=&(tablica[10]); if(wsk_a==wsk_b) printf("Wskazniki pokazuja na te same elementy tablicy\n"); //Nie kazda operacja ma jednak sens np dodawanie wiec prosze uwazac return 0; }
void FormPlaylist::titlelstMenu() { tLMenu.clear(); tLMenu.addAction( f1.ui.actionPlay ); tLMenu.addSeparator(); tLMenu.addAction( f1.ui.actionWyszukaj ); tLMenu.addSeparator(); tLMenu.addMenu( &menuPlistAct ); tLMenu.addSeparator(); QString selItms, wklejItms; if ( titlelist->selectedItems().count() ) selItms = " -> " + QString::number( titlelist->selectedItems().count() ) + " Ctrl+C"; if ( clipboard->mimeData()->hasUrls() ) wklejItms = " -> " + QString::number( clipboard->mimeData()->urls().count() ) + " Ctrl+V"; else if ( clipboard->mimeData()->hasText() ) wklejItms = " -> " + QString::number( clipboard->mimeData()->text().count() ) + " Ctrl+V"; tLMenu.addAction( Texts[57] /* Kopiuj */ + selItms,&fp,SLOT(kopiuj())); tLMenu.addAction( Texts[60] /* Wklej */ + wklejItms,&fp,SLOT(wklej())); tLMenu.addSeparator(); tLMenu.addAction( f1.ui.actionZaznacz ); tLMenu.addAction( f1.ui.actionOdznacz ); tLMenu.addSeparator(); tLMenu.addMenu( &menuAdd ); tLMenu.addAction( f1.ui.delWpisyA ); tLMenu.addSeparator(); tLMenu.addMenu( f1.ui.menuSortuj ); tLMenu.addSeparator(); tLMenu.addAction( f1.ui.actionClrplist ); tLMenu.addSeparator(); tLMenu.addAction( f1.ui.actionInformacje_2 ); tLMenu.addSeparator(); tLMenu.addAction( Texts[43] /** "Zapisz muzyke" */+ " Ctrl+S" , &f1 , SLOT( savMus() ) ); tLMenu.addAction( f1.ui.aWAV ); tLMenu.addSeparator(); tLMenu.addAction( Texts[45] /** "Zapisz playliste" */ + " Ctrl+T", &fp , SLOT( zapiszB() ) ); tLMenu.addAction( Texts[46] /** "Odczytaj playliste" */ + " Ctrl+G", &fp , SLOT( odczytajB() ) ); tLMenu.addSeparator(); tLMenu.addAction( f1.ui.sizeA ); tLMenu.addSeparator(); InputPlugin *iplug = NULL; if ( Func.chkFNr( Func.nr() ) ) iplug = Func.getMusicFormat( playList[1][Func.nr()], playList[2][Func.nr()] ); if ( iplug && iplug->showOptions ) { tLMenu.addAction( Texts[100] + ": " + (QString)iplug->pluginInfo->Name /*Plugin options*/ ,&fp,SLOT(pluginOptions())); tLMenu.addSeparator(); } tLMenu.addAction( f1.ui.wlasciwosciA ); tLMenu.popup( QCursor::pos() ); fp.setTcr( Func.nr() ); }
void ruchKursorOperacje(wezel *adresListy,unsigned int *kolumnaAdres,unsigned int *wierszAdres)// ruch kursora podczas operacji kopiuj wklej { char znak,buf[ROZMIAR_BUF_KOPIOWANIA]; unsigned int kolumna,wiersz,licznikKopiowaniaStartX=0,licznikKopiowaniaStartY=0; int znakSpec=0,flaga=1,flagaWartoscBuf=0,licznikKopiowania=0; //flaga -> pokazuje czy kursor zostal zablokowany:0/nie zablokowany: 1 char z=219;//przypisanie kodu ASCII całej zamalowanej komórki konsoli CONSOLE_CURSOR_INFO ci;//urywanie kursora HANDLE hC=GetStdHandle(STD_OUTPUT_HANDLE); GetConsoleCursorInfo(hC, &ci); ci.bVisible=1;//wyswietlenie kurosra SetConsoleCursorInfo(hC, &ci); OpcjeWOperacjach(); wypiszTekst(adresListy,kolumnaAdres,wierszAdres); adresListy=adresListy->glowa; adresListy=przejdDoWiersza(adresListy,-1,kolumnaAdres,wierszAdres); kolumna=*kolumnaAdres; wiersz=*wierszAdres; buf[licznikKopiowania]='\0'; while ((znak=getch())!=27) { gotoxy(0,7); printf(ZAMARZTESKST); gotoxy(0,7); printf("Status bufora: "); if (flagaWartoscBuf==0)//wypisanie stanu bufora printf("PUSTY"); else if(licznikKopiowania<ROZMIAR_BUF_KOPIOWANIA-1) printf("CZESCIOWO ZAPELNIONY"); else printf("PELNY"); if (znak==-32)//znak specjalny np strzalki przekirowanie do obslugi ich { znakSpec=1; continue; }//end if if (znakSpec==1&&flaga==1)//mozliwosc ruchu kursorem jezeli nie zaczeto zaznaczania i jezeli jest potwierdzenie wcisniecia znaku specjalnego(strzalki) { switch(znak) { case 72: { if (wiersz>0) { wiersz--; adresListy=adresListy->poprz; kolumna=adresListy->nrKolumny; } break; }//end case 72 case 80: { if (adresListy->nast!=NULL) { wiersz++; adresListy=adresListy->nast; kolumna=adresListy->nrKolumny; } break; }//end case 80 case 75: { if(kolumna>0) kolumna--; else if(adresListy->poprz!=NULL) { wiersz--; adresListy=adresListy->poprz; kolumna=adresListy->nrKolumny; } break; } case 77: { if(kolumna<adresListy->nrKolumny) kolumna++; else if(adresListy->nast!=NULL) { wiersz++; adresListy=adresListy->nast; kolumna=0; } break; } }//end switch licznikKopiowaniaStartX=kolumna;//poczatek zaznaczania kolumna licznikKopiowaniaStartY=wiersz;//poczatek zaznaczania wiersz gotoxy(kolumna,wiersz+WYSOKOSC_MENU_GORNEGO); znakSpec=0; // continue; }//end if else { do { if (flaga==0) znak=getch(); switch(znak) { case '+': { if (licznikKopiowania<ROZMIAR_BUF_KOPIOWANIA-1)// zeby nie przekroczyc tablicy przechowujaca przekopiowany tekst { gotoxy(kolumna,WYSOKOSC_MENU_GORNEGO+wiersz); printf("%c",z); if (adresListy->tabZnak[kolumna]!='\0') { kopiuj(buf,licznikKopiowania,adresListy->tabZnak[kolumna]); licznikKopiowania++; } else if(adresListy->nast!=NULL) { kopiuj(buf,licznikKopiowania,' '); licznikKopiowania++; } if(kolumna<adresListy->nrKolumny) kolumna++; else if(adresListy->nast!=NULL) { wiersz++; adresListy=adresListy->nast; kolumna=0; } flaga=0; flagaWartoscBuf=1; } break; }//end case + case '-': { if(kolumna>0) { licznikKopiowania--; kolumna--; } else if(adresListy->poprz!=NULL) { licznikKopiowania--; wiersz--; adresListy=adresListy->poprz; kolumna=adresListy->nrKolumny; }//end else if if (licznikKopiowania<0) { flaga=1; flagaWartoscBuf=0; //licznikKopiowania=0; } buf[licznikKopiowania]='\0'; gotoxy(kolumna,WYSOKOSC_MENU_GORNEGO+wiersz); printf("%c",adresListy->tabZnak[kolumna]); break; }//end case - case 'v': { if(flaga==1) { wklej(adresListy,buf,kolumna,wiersz); system("cls"); OpcjeWOperacjach(); wypiszTekst(adresListy,kolumnaAdres,wierszAdres); gotoxy(kolumna,WYSOKOSC_MENU_GORNEGO+wiersz); } break; } case 'c': { flaga=1; break; } case 'f': { system("cls"); OpcjeWOperacjach(); licznikKopiowania=0; buf[licznikKopiowania]='\0'; flagaWartoscBuf=0; wypiszTekst(adresListy,kolumnaAdres,wierszAdres); gotoxy(kolumna,WYSOKOSC_MENU_GORNEGO+wiersz); flaga=1; break; } case 'x': { wytnij(adresListy,buf,licznikKopiowaniaStartX,licznikKopiowaniaStartY,licznikKopiowania); system("cls"); OpcjeWOperacjach(); wypiszTekst(adresListy,kolumnaAdres,wierszAdres); gotoxy(kolumna,WYSOKOSC_MENU_GORNEGO+wiersz); flaga=1; break; } }//end switch } while(flaga==0); }//end else }//end while system("cls"); PasekOpcjiGorny(); }