Mam do napisania program, który justuje tekst, ale najpierw chcę krok po kroczku napisać i opanować funkcje, który w mniejszym lub większym stopniu przydadzą mi się do ostatecznego programu. Najpierw mój program ma za zadanie zrobić nowy wiersz w tekście, tj jeśli tekst ma dlugosc np. 40 znaków i jest on w jednym wierszu, to po wykonaniu komendy ./nowy 10 <tekst.txt> wynik.txt tekst zawarty w pliku tekst.txt zrobi '\n' po 10-tym znaku, jeśli tam jest spacja. Jeśli nie ma tam spacji, to cofnie się o kilka znaków aż znajdzie spację i tam wstawi '\n'.
Początkowy mój kod wygląda tak:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define MAX 100
void nowy_wiersz(char zdanie[], int miejsce)
{
int i;
int j;
for(i=0;zdanie[i]=zdanie[miejsce];i++)
{
if(zdanie[miejsce]!=' '){
miejsce=j;
while(zdanie[j]=' '){
zdanie[j]='\n';
--j;
}
}else{
zdanie[miejsce]='\n';
}
}
}
I mam problem z funkcją main.
int main()
{
char zdanie[MAX];
int miejsce;
scanf("%d", miejsce);
nowy_wiersz(zdanie,miejsce);
return 0;
}
Który na pewno jest zły, bo po prostu nie działa. Program się kompiluje, ale po wpisaniu tej komendy, co napisałem wcześniej, wyskakuje "Naruszenie ochrony pamięci". Jak main mniej więcej powinien być napisany? Przez to nie mogę sprawdzić, czy funkcja "nowy_wiersz" jest poprawnie napisana, a pewnie nie jest:) Proszę o pomoc.</cpp>