Potreboval by som, aby mi niekto vysvetlil ako je to stým nulovým znakom. Spravil som si náhodný program, napríklad pre prehodenie slov v reťazci
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define max 30
int nacitanie_pole(char pole[]);
void prehodenie(char pole[], int dlzka);
void vypis_pola(char pole[], int dlzka);
int main()
{
char pole[max];
int velkost;
velkost = nacitanie_pole(pole);
prehodenie(pole, velkost);
vypis_pola(pole, velkost);
putchar('\n');
system("pause");
return 0;
}
int nacitanie_pole(char pole[])
{
int i;
char pom;
for(i = 0; i < max - 1; i++)
{
pom = getchar();
if(pom == '\n')
break;
pole[i] = pom;
}
pole[i++] = '\0';
return i;
}
void prehodenie(char pole[], int dlzka)
{
char pom;
int j;
for(int i = 0, j = dlzka - 1; i < j; i++, j--)
{
pom = pole[i];
pole[i] = pole[j];
pole[j] = pom;
}
}
void vypis_pola(char pole[], int dlzka)
{
for(int i = 0; i < dlzka; i++)
putchar(pole[i]);
}
Napríklad keď napíšem macka, tak mi vyhodí (neidentifikovaný znak)akca
Keď to zmením takto
for(int i = 0, j = dlzka - 1; i < j; i++, j--)
Tak vypis je uz (medzera)ackam
A až keď dám dlzka - 2, tak potom je výpis správne