Obcinanie tekstu pracując na tym samym wskaźniku.

0

Potrzebuję obciąć tekst ze znaków białych, z tym, że operacja ma się odbyć na tym samym zmiennej/wskaźniku (raczej to drugie). Moje rozwiązanie polega na przepisaniu czystych znaków do nowego char copyText[] i następnie myślę, że można by ustawić wskaźnik zmiennej char text[], w której jest oryginalny tekst, na ten sam co ma copyText, tylko nie wiem jak to zrobić i czy to się właśnie tak robi.

1

Wszystko fajnie – opisałeś jak wygląda błąd, podałeś swoją propozycję rozwiązania problemu, ale nie napisałeś jaki jest problem (czyli co potrzebujesz zrobić). Więc napisz co potrzebujesz wykonać, a dobierze się odpowiednie rozwiązanie.

0

W zadaniu jest napisane właśnie, aby obciąć tekst oraz nie ma napisane aby, go ta funkcja obcinająca tekst miała go zwracać, a tylko zmienić i na ma napisane w jaki sposób. Więc sam do końca nie wiem. W moim sposobie nie wiem jak ustawić aby ta jedna zmienna odnosiła się do tego samego co ta druga oraz nie wiem czy to jest dobry sposób. Czy może lepiej wstawić do oryginalnej zmiennej obcięty tekst, a następnie dać znak końca stringa. Wiem, że to drugie mi nie za bardzo wychodziło, ale robiłem to jakiś czas temu i się zniechęciłem do tego zadania.

2

A takie coś, Przesuwasz pointer:

#include <stdio.h>


void remove_spaces(char* a){
  char* n = a;
  char* m = a;
  while(*m != 0){
    *n = *m++;
    if(*n != ' ')
      n++;
  }
  *n = 0;
}

int main() {
	char a[] = "Ala ma kota oraz psa";
	remove_spaces(a);
	printf("%s\n", a);
	return 0;
}
0

Czyli chodziło Ci o trim.

char * trim_leading(char * s) {
	 while(isspace((unsigned char) *s)) s++;
	 return s;
}

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