Cześć
Takie zadanie:
"
Dana jest tablica:
char tekst[] = {'T','o',' ','j','e','s','t',' ','t','e','k','s','t','\x0'};
Wyświetl elementy tej tablicy w kolejnych liniach, oddzielone spacjami, jako: znak (za pomocą pojedynczego wywołania funkcji putc) a następnie kod ASCII oraz znak (wykorzystując pojedyncze wywołanie funkcji printf).
"
Napisałem kod:
#include <stdio.h>
#include <stdlib.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char *argv[])
{
int i=0;
char tekst[] = {'T','o',' ','j','e','s','t',' ','t','e','k','s','t','\x0'};
for(i=0;i<=13;i++)
{
putc(tekst[i],stdout);
}
for(i=0;i<=13;i++)
{
}
return 0;
}
I teraz dwa pytanie. Po pierwsze z tego co zrozumiałem to i w pierwszej linijce muszą być odstępy pomiędzy wywoływaniem kolejnych elementów tablicy. Jak to zrobić, jeśli właśnie printf będzie musiał się pojawić w drugiej linijce, czyli nie mogę zapisać po putc(tekst[i],stdout); czegoś w stylu printf(" "); ?
EDIT
Dobra, ogarnąłem, że w kodzie Ascii char dla 32 odpowiada spacji.
#include <stdio.h>
#include <stdlib.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char *argv[])
{
int i=0;
char znak=32;
char tekst[] = {'T','o',' ','j','e','s','t',' ','t','e','k','s','t','\x0'};
for(i=0;i<=13;i++)
{
putc(tekst[i],stdout);
putc(znak,stdout);
}
for(i=0;i<=13;i++)
{
}
return 0;
}
Pytanie drugie (a teraz już w sumie jedyne) jest takie ... jak wypisać kod ASCII oraz znak wykorzystując pojedyncze wywołanie funkcji printf z dodatkowym warunkiem o spacji?