[C++] Dopisanie czegoś na początek c-stringa

0

Mam dynamicznego c-stringa:

char *file = "";

i tak alokuję pamięć:

if(length < 1 || (file = (char*)malloc(length + 5)) == NULL)

lecz chciałbym coś dopisać na początek,

sprintf(file, "text/%s", file);

nie działa, wychodzą bazgroły:
text/text/text/text/text/t

0

Dobra, rozwiązane, ale w nieco inny sposób:
przesunąłem ciąg znaków o 5 znaków:

	for(int pos = strlen(file); pos >= 0; pos--)
	{
		file[pos + 12] = file[pos];
	}

i ustawiłem wybrane znaki na początku:

	file[0] = 't';
	file[1] = 'e';
	file[2] = 'x;
	file[3] = 't';
	file[4] = '/';

Trochę "koczownicza" metoda, ale działa.

0

Ale on chciał dopisać coś na początek, a nie na koniec.

0

A jaki jest problem z tego tytułu panie @rs.pect? Po prostu trzeba odpowiednie argumenty podać.

0

Co? To podaj przykład...

0
char* nowy = new char[strlen(stary)+6];
strcpy(nowy, "text/");
strcat(nowy, stary);

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