• 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

Object Storage Arubacloud
0 głosów
1,036 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 (156,220 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,394 wizyt
pytanie zadane 4 maja 2018 w C i C++ przez Szymek_sw Początkujący (420 p.)
0 głosów
1 odpowiedź 440 wizyt
pytanie zadane 13 grudnia 2016 w C i C++ przez Kamyyylo Początkujący (460 p.)
0 głosów
1 odpowiedź 993 wizyt
pytanie zadane 7 maja 2017 w HTML i CSS przez Cemini Nowicjusz (170 p.)

92,757 zapytań

141,679 odpowiedzi

320,441 komentarzy

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

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!

...