brainfu*k语言执行
生活随笔
收集整理的這篇文章主要介紹了
brainfu*k语言执行
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
輸入:
brainfu*k 代碼:
++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.
程序:
#include <stdio.h> #include <stdlib.h> #include <string.h> #define MAXL 1000 /** brainfuck 轉(zhuǎn)換為 c語(yǔ)言,并執(zhí)行* buffer[] 存儲(chǔ)數(shù)據(jù)* order[] 存儲(chǔ)brainfuck命令*/ int fun(char* brain_file) {FILE* input = fopen(brain_file, "r");char buffer[MAXL] = {0};char order[MAXL] = {0};char *ptr, *wptr, *optr;int wflag = 0;optr = order;ptr = buffer;while (wflag || EOF != fscanf(input, "%c", optr)){//printf("%c", *optr);switch(*optr){case '>':++ptr;break;case '<':--ptr;break;case '+':++*ptr;break;case '-':--*ptr;break;case '.':putchar(*ptr);break;case ',':*ptr = getchar();break;case '[':if (*ptr){wptr = optr - 1;}else{wflag = 0;}break;case ']':wflag = 1;optr = wptr;break;case '\n':break;default:break;}optr++;}fclose(input);return 0; } int main(int argc, char* argv[]) {if(argc < 2){printf("Usage: ./a.out brain_str");return -1;}//printf("argv[1] is %s", argv[1]);fun(argv[1]);return 0; }運(yùn)行結(jié)果:
Hello World!
總結(jié)
以上是生活随笔為你收集整理的brainfu*k语言执行的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: idf实验室--简单编程字符统计
- 下一篇: C语言实现字符串匹配KMP算法