Usuwanie spacji z ciągu znaków.
Ostatnio zmodyfikowano 2015-11-08 13:56
LordShadow47 Temat założony przez niniejszego użytkownika |
Usuwanie spacji z ciągu znaków. » 2015-11-07 14:31:33 Witam.
Zadanie brzmi: Napisz program wczytujący, z klawiatury ciąg znaków, a następnie przepisujący go z pominięciem spacji. Nie proszę o rozwiązanie zadanie a jedynie o informację jakich bibliotek i jakich funkcji użyć. Program musi być napisany w zwykłym C. Na razie napisałem program który wczytuje i wyświetla ciąg znaków ze spacjami: #include<stdio.h> int main() { char x[200]; int licznik=0; int i=0; int j=0; fgets(x,sizeof(x),stdin); printf("\n%s\n",x); return 0; } Ale nie wiem jak przepisać go z pominięciem spacji. |
|
Gibas11 |
» 2015-11-07 14:39:10 Wystarczy operator porównania i putchar(). Wyświetlaj ciąg znak po znaku z pominięciem spacji? Mniej-więcej tak: for( int i = 0; x[ i ] != '\0'; i++ ) { if( x[ i ] != ' ' ) { putchar( x[ i ] ); } }
|
|
LordShadow47 Temat założony przez niniejszego użytkownika |
» 2015-11-07 16:14:01 Nie bardzo rozumiem zapis "x != '\0'; Spróbuję za pomocą podobnej pętli rozwiązać problem, ale mimo dobrego wyniku chodzi mi o przepisanie ciągu znaków do innego ciągu i dopiero wyświetlenie go już bez spacji. |
|
carlosmay |
» 2015-11-07 16:20:00 x[ i ] != '\0' wykonuj pętlę póki nie osiągnie końca łańcucha. |
|
Gibas11 |
» 2015-11-07 16:21:25 x[ i ] != '\0' sprawdza czy obecnie sprawdzany znak nie ma kodu ASCII równego zeru - tak w C oznacza się koniec ciągu znaków. EDIT: Heh, spóźniłem się 25 sekund. :/ |
|
j23 |
» 2015-11-07 18:49:55 Tu masz wersję, która usuwa białe znaki w tablicy x: ...
char * p1 = x; char * p2 = x;
while( * p1 = * p2++ ) { if( !isspace( * p1 ) ) ++p1; }
printf( "\n%s\n", x );
|
|
LordShadow47 Temat założony przez niniejszego użytkownika |
» 2015-11-08 12:48:23 Oki. Mam jeszcze jedno pytanie jak to jest w standardzie C. W jakich zmiennych przechowywane mogą być ciągi znaków? Wiem że da się to zrobić za pomocą zmiennej char użytej jako tablica. Ale co jeśli bym chciał wpisać nieograniczony ciąg znaków? Czy istnieje jakaś inna zmienna? Jak np. string w C++? |
|
j23 |
» 2015-11-08 13:56:05 Czegoś tak wygodnego jak string w C nie ma. Jedyne co Ci pozostaje to tablice dynamiczne tworzone na stercie funkcją malloc lub VLA. |
|
« 1 » |