寻找合伙伙伴【违规删】
  • 板块学术版
  • 楼主五年长久
  • 当前回复30
  • 已保存回复30
  • 发布时间2022/2/19 20:37
  • 上次更新2023/10/28 08:08:08
查看原帖
寻找合伙伙伴【违规删】
444078
五年长久楼主2022/2/19 20:37

最近我想写一个用中文来翻译c++的程序,但写到一半写不下去了,希望寻找一两个合伙伙伴一起写,如果有这方面经验的朋友可以在下面说一下,我去关注您,之后再看怎么办。

PS:如果紫衫觉得我违规了请联系我删掉,因为这个帖属于边缘帖

我目前基建好的std:

/*
NAME:Cc++ (Chinese C++)
NODE/TIPS:NONE
*/
//std
#include <bits/stdc++.h>
#include <windows.h>
#define int long long 
using namespace std;
string code;
map<string,string> ctoe;//翻译连接
map<string,string> ini;//变量连接
vector<string> box;//存储已有的可替换串 
string itos(int n){
	string s="";
	while(n){
		s=char(n%10+'0')+s;
		n/=10;
	}
	return s;
}
string getname();//给变量取名 
void inte();//处理Cc++中的变量、函数问题 
void build(); 
void repet();
void fh();//添加分号 
signed main(){
	build();
	string c;
	while(getline(cin,c)){
		if(c=="END")break;
		code+=" "+c+"\n";
	}
	inte();
	repet();
	cout<<code;
	return 0;
}
string getname(){
	static int n=1;
	return "v"+itos(n++);
}
void inte(){
	int p1=code.find("#");
	int p2=code.find("#",p1+1);
	while(p1!=-1&&p2!=-1){
		//中间一定就是变量了
		string s=code.substr(p1+1,p2-p1-1);
		if(!ini.count(s))ini[s]=getname();//取名 
		code.replace(p1,p2-p1+1,ini[s]);
		p1=code.find("#",p2+1);
		p2=code.find("#",p1+1);
	}
} 
void build(){
	//存储
	box.push_back(" 导入"); 
	box.push_back(" 标准库"); 
	box.push_back(" 扩展库"); 
	box.push_back(" 微软库"); 
	box.push_back(" 命名空间为"); 
	box.push_back(" 标准空间"); 
	box.push_back(" 宏定义"); 
	box.push_back(" 替换为");  
	//头文件集成
	ctoe[" 导入"]="#include";
	ctoe[" 标准库"]="<bits/stdc++.h>"; 
	ctoe[" 扩展库"]="<conio.h>"; 
	ctoe[" 微软库"]="<windows.h>"; 
	ctoe[" 命名空间为"]="using namespace ";
	ctoe[" 标准空间"]="std";
	ctoe[" 宏定义"]="#define";
	ctoe[" 替换为"]=""; 
}
void repet(){
	for(int i=0;i<box.size();i++){
		string c=box[i];
		int p=code.find(c);
		while(p!=-1){
			code.replace(p,c.size(),ctoe[c]);
			p=code.find(c,p+ctoe[c].size());
		}
	}
}
void fh(){
	/* TODO (#1#): 在句末添加分号 */
}

测试使用的样例:

//Cc++演示
导入 标准库
导入 微软库
导入 扩展库
宏定义 #Cc++# 替换为 good
命名空间为 标准空间
END

感谢了!!!

2022/2/19 20:37
加载中...