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

usuwanie spacji z podanego łańcucha

Aruba Cloud - Virtual Private Server VPS
0 głosów
1,208 wizyt
pytanie zadane 9 stycznia 2018 w C i C++ przez mn130496 Gaduła (3,530 p.)

Witam

ostatnio otrzymałem do zrobienia następujące zadanie:

Napisać program, który usunie wszystkie spacje z podanego łańcucha.
Znalazłem kilka przykładowych zadań tego  typu ale nie mogę dojść do tego jak zostały napisane.Wiem ,że muszę zrobić sobie zmienną typ char,która będzie przechowywać ten mój łańcuch(napis) oraz użyć funkcji gets(),która pozwoli mi na to ,żeby podać z klawiatury napis razem z spacjami. Następnie stworzyć pętle for ,która będzie  przeszukiwać mi ten mój napis w poszukiwaniu spacji o parametrach for(i=0; i<=strlen;i++) a w jej ciele zrobić sobie if. Niestety nie wiem jak to wszystko zapisać.żeby program działał jak należy.Czy ktoś może  mi podpowiedzieć jak zrobić to zadanie?. Dodam jeszcze,że program muszę napisać w języku C.

Z góry dziękuję 

2 odpowiedzi

+1 głos
odpowiedź 9 stycznia 2018 przez lambdag Obywatel (1,310 p.)
wybrane 9 stycznia 2018 przez mn130496
 
Najlepsza

Np takie coś?

int main()
{
    int i,j;
    j = 0;
    char napis[] = {"Ala ma kota"};
    int a = strlen(napis);
    char *newnapis;
    newnapis = (char*) malloc(sizeof(char) * a);
    for(i = 0; i < a; i++)
    {
        if(napis[i] != 32)
        {
            newnapis[j] = napis[i];
            j++;
        }

    }
    for(i = 0; i < a; i++)
    {
        printf("%c", newnapis[i]);
    }
 free(newnapis);
    return 0;
}

 

komentarz 9 stycznia 2018 przez lambdag Obywatel (1,310 p.)
edycja 9 stycznia 2018 przez lambdag

32 albo ' ' . Kodowanie ASCII https://pl.wikipedia.org/wiki/ASCII

komentarz 9 stycznia 2018 przez mn130496 Gaduła (3,530 p.)
Właśnie o coś takiego mi chodziło dziękuje ci bardzo
komentarz 9 stycznia 2018 przez Eryk Andrzejewski Mędrzec (164,260 p.)

ASCII, nie ANSCI! Już Cię ktoś upomniał w tym temacie. wink

komentarz 9 stycznia 2018 przez lambdag Obywatel (1,310 p.)
Już poprawione ;)
komentarz 9 stycznia 2018 przez Eryk Andrzejewski Mędrzec (164,260 p.)

ASCII przez dwa I laugh

komentarz 9 stycznia 2018 przez lambdag Obywatel (1,310 p.)
Już poprawione ;D
+1 głos
odpowiedź 9 stycznia 2018 przez mokrowski Mędrzec (158,200 p.)
edycja 9 stycznia 2018 przez mokrowski

No to tak:

#include <stdio.h>

void remove_space(char* msg) {
    char* dst_ptr = msg;
    char* src_ptr = msg;
    while(*src_ptr != '\0') {
        *dst_ptr = *src_ptr++;
        if(*dst_ptr != ' ')
            dst_ptr++;
    }
    *dst_ptr = '\0';
}

int main(void) {
    char msg[] = "Ala ma chomika i nic z tego nie wynika.";
    remove_space(msg);
    puts(msg);

    return 0;
}

Oczywiście literałów stałych tak nie traktuj. Nie można zrobić: remove_space("ala ma kota")

Podobne pytania

0 głosów
1 odpowiedź 1,645 wizyt
pytanie zadane 4 maja 2018 w C i C++ przez Szymek_sw Początkujący (420 p.)
0 głosów
1 odpowiedź 598 wizyt
pytanie zadane 13 grudnia 2016 w C i C++ przez Kamyyylo Początkujący (460 p.)
0 głosów
1 odpowiedź 1,072 wizyt
pytanie zadane 7 maja 2017 w HTML i CSS przez Cemini Nowicjusz (170 p.)

93,331 zapytań

142,323 odpowiedzi

322,400 komentarzy

62,664 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

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...