Self writing program and long string assignment in C

  • Thread starter Lojzek
  • Start date
  • #1
Lojzek
249
1
I would like to write a C program that writes itself to the screen (without reading from disk).
My idea is to assign text to a string S, split it into two parts S1 and S2 and then write each part twice. If S1 is made equal to program part before text definition and S2 equal to program part after, then the program would write S1S1S2S2, which would be equal to the whole program.

However I don't know how to put a text into the string S. I tried to use strcpy, but it does not work if the text is too long for a single line. Is there a way to store a several line long text into a string without spliting the text (the whole text should be written inside a single "").
 

Answers and Replies

  • #2
Defennder
Homework Helper
2,592
5
How is the text entered into the program? Is it by human input?
 
  • #3
Lojzek
249
1
Yes, text should be typed directly into the source code. Of course it would be much easier if it would be read from a file, but then this task would not be interesting. The tricky part is that any character added to the text is simultaneously added to the whole program, so we must find a way to output more information that we explicitly define.
 
  • #4
Crosson
1,259
4
  • #6
Defennder
Homework Helper
2,592
5
Yeah it's probably quine. Apparently I misread the first line of the OP.
 
  • #7
Lojzek
249
1
Thanks for the answers (and sorry for not checking for similar posts on this forum). I read the example on wikipedia and now understand how this program can be constructed.
However my first idea about printing S1S1S2S2 would not work: I forgot that printf does not print all characters in a quotation (for example \ used for line continuation or before special characters).
 

Suggested for: Self writing program and long string assignment in C

Replies
34
Views
997
Replies
4
Views
288
Replies
22
Views
924
Replies
49
Views
2K
  • Last Post
Replies
19
Views
602
Replies
1
Views
582
  • Last Post
2
Replies
54
Views
1K
Replies
1
Views
174
  • Last Post
Replies
2
Views
154
Top