Łączenie charów

0

[code]char array1[6] = "nazwapliku.exe";
char array2[_MAX_PATH];[/code]

Pierwsza zmienna przechowuje stałą nazwę pliku. Druga zmienna przechowuje ścieżkę do tego pliku (ścieżkę katalogów). Ścieżka jest dynamiczna i dla każdego komputera inna, więc nie znam rozmiaru tej drugiej tablicy znaków.

Jak to połączyć?
W sensie: jak do array2 dokleić array1?

0

Właśnie robie małą aplikacje i musiałem ze stringów przenieść się na CHARY i stąd ten problem
Nie mogę importować <string.h> (bo zajmuje aż 100 kb~, a mi zależy na miniaturowym pliku ze pewnych względów) , dlatego to co podałeś - odpada.

0

Więc jeżeli chcesz to zrobić "na piechotę" to musisz znaleźć w tej tablicy znak '\0' - on oznacza koniec tekstu - reszta to śmieci. I od tego \0 zastępujesz wartościami z array1. Tylko nie zapomnij wstawić znaku końca na w ciągu wynikowym.

EDIT: Na przyszłość warto wspomnieć o swoich wymaganiach co do możliwości używania bibliotek.

0

No dobra, więc w jaki sposób w array2 znaleźć pozycję w której skończyły się litery i mogę dodawać pojedynczo znaki z array1?

0

Nie dam Ci gotowca... ale napiszę Ci jak to zrobić.

  1. W pętli sprawdzasz elementy ciągu array2 aż napotkasz na '\0'.
  2. Zapamiętujesz indeks pod jakim było to '\0'.
  3. W kolejnej pętli kopiujesz znaki z array1 do tablicy array2 zaczynając wstawiać do array2 począwszy od indeksu gdzie było '\0'.

To wszystko - myślę że jasno napisałem.

0

Ja rozumiem, nie chce gotowca przecież... potrzebuje tylko wiedzieć jaka funkcja jest odpowiedzialna za podanie właśnie tego znalezionego indeksu w tablicy.

3

OMG, jesli ty nie wiesz w jaki sposob petla for przeglada tablice i w jaki sposob sprawdzic dany znak to zacznij od jakiegos poradnika c++ dla poczatkujacych.

0

No to musisz się zdecydować czy chcesz używać tych bibliotek czy nie - jeżeli nie to użyj pętli, jeżeli tak to w pierwszej odpowiedzi masz odpowiednią funkcję.

0

[code]
int pozycja;
char array1[6] = "nazwapliku.exe";
char array2[_MAX_PATH];

for(int i=0; i <= _MAX_PATH; i++)
{
if(array2[i] == '\0') pozycja = i;
}
[/code]

Wyrzuca mi liczbę 251. A ścieżka ma może 40 znaków...

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