• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Usuwanie początkowej i końcowej spacji w napisie

VPS Starter Arubacloud
0 głosów
382 wizyt
pytanie zadane 13 grudnia 2016 w C i C++ przez Kamyyylo Początkujący (460 p.)

hej :D 

Próbowałem rozgryźć jak usunąć spacje na początku i końcu tekstu, który wpisuje, jednak program działał tylko gdy w środku tekstu nie było spacji... Znalazłem w internecie kod działającego programu, trochę go zmodyfikowałem i próbowałem rozgryźć. Mam jednak 2 pytania do tego kodu:

#include <cstdlib>
#include <iostream>
using namespace std;
int main()
{
    int  i, k;
    char ciag[100];
    cin.getline(ciag, 100);               
    while (ciag[0] == 32)            
    {
        i = 0;
        for (k = 1; ciag[i]!='\0'; k++)
        {
            ciag[i] = ciag[k];                  
            i++;                                
        }
    }
    i = 0;
    while (ciag[i] != 0)              
        i++;
    for (i--; ciag[i] == 32; i--)       
        ciag[i] = 0;                        
    cout << ciag << endl;         
    system("PAUSE");                   
    return 0;
}

Dlaczego w linijce:

while (ciag[0] == 32)    nie działa użycie while (ciag[0] == '0')   ? Czy to nie jest to samo ?

i jeszcze nie wiem jak odczytać i-- i jak działa na początku :

 for (i--; ciag[i] == 32; i--)    

Z góry chciałbym podziękować za pomoc i przepraszam jeśli napisałem lub zrobiłem coś złego :D

1 odpowiedź

0 głosów
odpowiedź 13 grudnia 2016 przez Chess Szeryf (76,710 p.)
edycja 13 grudnia 2016 przez Chess
(ciag[0] == 32)

To jest warunek wykonania pętli. ciag[0] ma być równe 32. Jeśli ciag[0] nie będzie równy 32 to pętla zostanie przerwana/skończona.

i-- oznacza to samo, co i=i-1

Jeśli i = 40 to i=40-1 i=39

for(40-1; ciag[40-1]==32; 40-1)

Pętla for zaczyna odliczanie od jakiejś wartości początkowej jaka jest w zmiennej i. Jeśli ciag[9] będzie równy 32 to pętla zakończy działanie.

for(39; ciag[39]==32; 39)

for(38; ciag[38]==32; 38)

for(37; ciag[37]==32; 37)

 (...)

for(32; ciag[32]==32; 32)

 

Jeśli się mylę, proszę poprawić.

<?php 
$x=array(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21);

$i=22;

for($i--;$x[$i];$i--){
	echo $i;
	echo '<br />';
}

?>

 

komentarz 13 grudnia 2016 przez Kamyyylo Początkujący (460 p.)

w przypadku : 

(ciag[0] == 32)

 chodzi mi o to czemu nie moge zapisac '0'. wiem co to komenda while :D Czy 32 nie jest równe '0'  ? 

komentarz 13 grudnia 2016 przez Chess Szeryf (76,710 p.)
To jest warunek, że ciag[0]==32 ma być równy 32. Można zrobić, aby był równy 0, ale trzeba byłoby coś w kodzie zmienić jeszcze.
komentarz 13 grudnia 2016 przez Kamyyylo Początkujący (460 p.)
Boze już widzę... nie chodziło mi o 0 tylko o usunięcie spacji a przeciez w ASCII spacja to 32...Dzieki za uświadomienie mnie :D Jeśli nie chce używać kodów ASCII to wystarczy ze napisze " " i to bedzie oznaczalo spacje przecież :D

Podobne pytania

0 głosów
1 odpowiedź 1,280 wizyt
pytanie zadane 4 maja 2018 w C i C++ przez Szymek_sw Początkujący (420 p.)
0 głosów
2 odpowiedzi 848 wizyt
pytanie zadane 9 stycznia 2018 w C i C++ przez mn130496 Gaduła (3,530 p.)
0 głosów
1 odpowiedź 962 wizyt
pytanie zadane 7 maja 2017 w HTML i CSS przez Cemini Nowicjusz (170 p.)

92,304 zapytań

141,108 odpowiedzi

318,584 komentarzy

61,756 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...