Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

C wczytywanie łańcucha znaków.


Rekomendowane odpowiedzi

Opublikowano

Witam,

Mam problem z wczytaniem łańcucha znaków. Program miał za zadanie zliczać ilość wystąpień wybranej litery w zdaniu, ostatnio próbowałem tak:

    char litera;
    char *zdanie = malloc(sizeof(char));
    int ileLiter = 0, i;

    printf("Wprowadz zdanie: ");
    scanf("%s", zdanie);
    printf("Podaj litere: ");
    scanf("%c", &litera);

Przerywa, wczytywanie po spacji, czy w C da się w prosty sposób wczytać łańcuch znaków ze spacjami, tak żeby móc wykonywać na nim później operacje? :D

 

 

@Edit

    char litera;
    char *zdanie;
    int ileLiter = 0, i;

    printf("[Zliczanie wystapien litery]\n\n");
    printf("Wprowadz zdanie: ");
    fgets(zdanie, sizeof(char)*128, stdin);
    // fgets(zdanie, sizeof(char)*128, stdin);
    fputs(zdanie, stdout);

    printf("%s", zdanie);
    printf("Podaj litere: ");

Dlaczego jak używam pojedynczo fgets to mi przeskakuje program. Jak używam 2 razy to działa ale na koniec się crashuje :(. Co robić?

giphy.gif

Opublikowano

 

masz wskaźnik, ale nie masz zarezerwowanej pamięci na znaki więc nie ma prawa to działać

#include <stdio.h>
 
int main() {
char str[128];
 
fgets(str, sizeof(str), stdin);
printf("Wpisales %s", str);
return 0;
}

Mam tak:

    char litera;
    char zdanie[128];
    int ileLiter = 0, ileLiczb = 0 , i;

    printf("[Zliczanie wystapien litery i liczby cyfr]\n\n");
    printf("Wprowadz zdanie: ");
    fgets(zdanie, sizeof(zdanie), stdin);

    printf("Wpisales: %s", zdanie);

    getch();

Jednak nie mam szansy wczytac danych bo program odrazu przechodzi do instrukcji printf("Wpisales: %s", zdanie).

 

@Edit Znalazłem rozwiązanie problemu tutaj: 

http://stackoverflow.com/questions/26318275/fgets-skipping-inputs

giphy.gif

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...