Wyświetlanie napisu bez użycia []

0

Napisz program, który wyświetli tekst na ekranie bez używania funkcji printf/puts. Podpowiedź: jaka inna funkcja pozwala wyświetlać znaki na ekranie?
W programie nie wolno użyć [].

Tekst wejściowy: const char* t1 = "Ala Ma Kota a kot Ma AlE";

Proszę o pomoc

0

Co konkretnie jest problemem?

0

Za bardzo nie wiem jaką funkcje mam użyć. Próbowałem write (1,t1,24) oraz (1,"Ala Ma Kota a kot Ma AlE",24) jednak wyskakuje błąd: implicit declaration of function ‘write’.

0

Nie zainkludowałeś odpowiedniego nagłówka. Swoją drogą write to funkcja posixowa, w zadaniu pewnie chodziło o fwrite

0

Ale w poleceniu nie ma mowy o zapisie do pliku

0

No nie ma. Masz zapisać do wyjścia standardowego.

0

Napisałem następującą funkcję:

fwrite(t1,1,24,stdout);

Teraz sprawdzarka wyświetla następujący błąd:

Błąd: Wyświetlanie danych miało odbywać się za pomocą wskaźnika!
2

To znaczy, że pewnie miałeś użyć putc. Antybrawa dla prowadzącego za odrzucenie programu zgodnego z zadaną treścią.

0

Zgadza się, funkcja putc dała radę. Jeżeli można to mam jeszcze jedno zadanie:

Zakładając, że ciągi znaków w języku C zapisane są w formacie ASCIIZ, napisz program wyznaczający i wyświetlający długość tekstu pobranego od użytkownika (nie więcej niż 1010 znaków). Do obliczania długości tekstu przygotuj specjalną funkcję, której prototyp powinien wyglądać następująco:

int ASCIIZ_length(const char* txt);

Funkcja powinna zwrócić wartość -1 w przypadku przekazania do niej błędnych danych wejściowych, w pozostałych przypadkach ma zwrócić długość tekstu.

W jaki sposób ma pomóc mi informacja o kodzie ASCIIZ jeżeli chodzi o długość tekstu?
Kod ASCII to np. 65 = "A"
Nie lepiej po prostu liczyć litery dopóki "\0"?

0

ASCIIZ oznacza właśnie, że koniec napisu jest oznaczany zerem, więc powinieneś policzyć znaki (a nie tylko litery) aż napotkasz zero.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0