[C++]Napisać funkcję kopiującą jedną tablicę znaków do drugi

chudiniii
Użytkownik
Użytkownik
Posty: 127
Rejestracja: 20 kwie 2007, o 15:26
Płeć: Mężczyzna
Lokalizacja: Internet
Podziękował: 53 razy

[C++]Napisać funkcję kopiującą jedną tablicę znaków do drugi

Post autor: chudiniii »

Treść:

Mianowicie mam problem z takim zadaniem:

1. Przebieg ćwiczenia
• Napisać funkcję kopiującą jedną tablicę znaków do drugiej i wypełniający tę drugą znakami '0' (Zalecam napisanie funkcji przy użyciu wskaźników wtedy przykładowe podstawienia: *(tabl1+i) = *(tabl2+i)). Dodatkowo proszę napisać funkcję wyświetlającą tablicę znaków.
• Napisać program (można użyć tej samej funkcji main a potrzebne funkcje dopisać do istniejącej biblioteki), który pyta użytkownika o liczbę wprowadzonych danych typu int. Następnie prosi o podanie zadeklarowanej liczby danych, uzupełnia tabelę o odpowiedniej wielkości i wyświetla jej zawartość. Użyć operatorów new i delete. Dodatkowo proszę napisać funkcję wyświetlającą tablicę int.


Napisać funkcję, która przeszukuje tablicę (int) i zwraca indeks pierwszego znalezionego elementu o zadanej wartości. W przypadku gdy w tablicy nie ma danego elementu funkcja powinna zwracać -1;
Przykładowy plik nagłówkowy:
Moja.h
void copyTable(char *tabl1, char *tabl2, int size);
void showTable(char *tabl, int size);
void showIntTable(int *tabl, int size);
int find(int *tabl, int size, int value);
Istotne jest napisanie prawidłowych funkcji wymienionych powyżej. Ich przykładowe wywołanie może znajdować się w jednym programie (main()).


Proszę o pomoc z pewnością się odwdzięczę punkcikami pomocy. Pozdrawiam
smiechowiec
Użytkownik
Użytkownik
Posty: 374
Rejestracja: 21 cze 2007, o 11:28
Płeć: Mężczyzna
Lokalizacja: Łostowice
Pomógł: 146 razy

[C++]Napisać funkcję kopiującą jedną tablicę znaków do drugi

Post autor: smiechowiec »

Pierwsza część zadania to implementacja standardowej funkcji ze string.h strcpy(naco, co);

Kod: Zaznacz cały

#include <stdio.h>
char *fstrcpy(char *tabl1, char *tabl2) {
  char *tablica1 = tabl1; // Zapamietujemy poczatek łańcucha aby go zwrócić
  if (tabl2 == NULL)
    return NULL;
  while (*tabl2) 
    *(tabl1++) = *(tabl2++); // Kopiujemy po znaku
  *tabl1 = 0; // Dodajemy znak kończący łańcuch
  return tablica1;
}

int main(int argc, char *argv[]) {
  char s[20]; //zmienna s ma nieokreśloną wartość
  fstrcpy(s, "Test kopiowania."); // przypisanie wartości przez kopiowanie łańcucha
  printf("%s
", s); // wypisanie zmiennej znakowej
  return 0;
}
ODPOWIEDZ