obsługa stringów w języku c

0

Witam
Piszę kawałek kodu, który automatyzuje działanie polecenia ping.
Trafiłem na pewien problem ze stringami.
W jaki sposób w pętli przypisywać do char*napis przypisywać pewną stałą wartość np "192.168.2."
Przedstawię kawałek kodu z którym nie mogę sobie poradzić

while(i<=255)
{
napis = "192.168.0."
koncowy_oktet = i;
i++;
itoa(koncowy_oktet,koncowy,10);
strcat(napis,koncowy);
system(napis);
}

2
for(i=0;i<256;++i)
  {
   char napis[32];
   sprintf(napis,"ping 192.168.0.%d",i);
   system(napis);
  }
0
char buffer[32];
while(...) {
  strncpy(buffer, "foobar", sizeof(buffer));
  // ...
}

Tylko nie wiem po co chcesz kopiowac w petli ten ciag. Nie mozesz go raz przypisac poza petla?

0

Nie masz prawa zmieniać (np. za pomocą strcat) string literala, nawet jeśli w C legalne jest przypisanie go do char*.

itoa nie jest funkcją standardową, lepiej używaj czegoś standardowego, np. snprintf:

char buf[15];
snprintf(buf, 15, "192.168.0.%d", koncowy_oktet);
0

Dziękuję.

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