LINUX.ORG.RU
ФорумTalks

Строчка


0

0

баян но забавно :)
эта строка не удаляет ниче и не делает rm -rf
просто было интерестно написать подобное :)
в планах терь написать таким образом строку которая с точностью выводит свой собственный код... конкурс? кто напишет тому зачот!

perl -e 's;;yi8rp%\@A1tip#\@^;;y*0-9qwertyuiopasdfgh#\@%^*a-z?"()*;s;;$_;ee;'

Тривиально.

s;;yi8rp%\@A1tip#\@^;; -- фактически помещаем строку в текущую переменную
y*0-9qwertyuiopasdfgh#\@%^*a-z?"()*; -- по tr /// преобразуем ее в другую строку
s;;$_;ee; -- исполняем содержимое текущей переменной (в которой преобразованная строка).

Zulu ★★☆☆
()

> написать таким образом строку которая с точностью выводит свой собственный код... конкурс?

баян, да ещё и с бородой.

напиши лучше строчку которая выводит свой код задом наперёд

ID19999
()
Ответ на: комментарий от ID19999

А разве это возможно? с tar по крайней мере что-то слабо верится (хотя описание формата давно читал).

Teak ★★★★★
()
Ответ на: комментарий от ID19999

а кто-нить на с прогу напишет, которая себя будт выводить, помнится было это уже, только давно и найти теперь трудно

anonymous
()
Ответ на: комментарий от anonymous

вот это какраз баян.. я даж это делал год назад почти еще :))
а вот на перле через запутанные регекспы это было бы мега руль )

godexsoft
() автор топика
Ответ на: комментарий от anonymous

Давно писал и наспор. Вышло брутально, но забавно 

#include <stdio.h>

int char_num= 79;
int code_str_length=392;
char code_str[]="23 69 6e 63 6c 75 64 65 20 3c 73 74 64 69 6f 2e 68 3e  a  a 69 6e 74 20 63 68 61 72 5f 6e 75 6d 3d 20 37 39 3b  a 69 6e 74 20 63 6f 64 65 5f 73 74 72 5f 6c 65 6e 67 74 68 3d 33 39 32 3b  a 63 68 61 72 20 63 6f 64 65 5f 73 74 72 5b 5d 3d 22 22 3b  a  a 63 68 61 72 20 67 65 74 43 68 61 72 42 79 50 6f 73 49 6e 5f 63 6f 64 65 5f 73 74 72 28 69 6e 74 20 5f 70 6f 73 29  a 7b  a  9 69 6e 74 20 63 68 61 72 5f 63 6f 64 65 3b  a  9 73 73 63 61 6e 66 28 26 63 6f 64 65 5f 73 74 72 5b 5f 70 6f 73 2a 33 5d 2c 22 25 78 22 2c 26 63 68 61 72 5f 63 6f 64 65 29 3b  a  9 72 65 74 75 72 6e 20 63 68 61 72 5f 63 6f 64 65 3b  a 7d  a  a 76 6f 69 64 20 70 72 69 6e 74 4d 79 53 65 6c 66 28 29  a 7b  a  9 66 6f 72 20 28 69 6e 74 20 69 3d 30 3b 69 3c 63 6f 64 65 5f 73 74 72 5f 6c 65 6e 67 74 68 3b 69 2b 2b 29  a  9 7b  a  9  9 70 72 69 6e 74 66 28 22 25 63 22 2c 67 65 74 43 68 61 72 42 79 50 6f 73 49 6e 5f 63 6f 64 65 5f 73 74 72 28 69 29 29 3b  a  9  9 69 66 20 28 69 3d 3d 63 68 61 72 5f 6e 75 6d 29 20 70 72 69 6e 74 66 28 63 6f 64 65 5f 73 74 72 29 3b  a  9 7d  a 7d  a  a  a 76 6f 69 64 20 6d 61 69 6e 28 76 6f 69 64 29  a 7b  a  9 70 72 69 6e 74 4d 79 53 65 6c 66 28 29 3b  9  a  a 7d  a  a  a 7b  d  a  9 70 72 69 6e 74 4d 79 53 65 6c 66 28 29 3b  9  d  a  d  a 7d  d  a  d  a";

char getCharByPosIn_code_str(int _pos)
{
	int char_code;
	sscanf(&code_str[_pos*3],"%x",&char_code);
	return char_code;
}

void printMySelf()
{
	for (int i=0;i<code_str_length;i++)
	{
		printf("%c",getCharByPosIn_code_str(i));
		if (i==char_num) printf(code_str);
	}
}


void main(void)
{
	printMySelf();	

}

ukez
()
Ответ на: комментарий от ukez

code_str в heх-е, из-за того что не хотелось ковыряться с кавычками.

ukez
()
Ответ на: комментарий от ukez

Это немного не то решение которое писали мы в свое время...
да и вообще имел в виду я строку на перле типа
perl -e 's;;code;;y;asdasd;dsadsa;.....' итп которая выводит свой код! вот это было бы трудно написать :)))
на Си мы писали такую тему как ты показал, но она не юзела никаких кодирований итп.. и весила раза в два меньше :)
там главное это функа которая меняет \n на \\n итп ;)

godexsoft
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.