我正在为MC68HC11编写一个“伪装配编译器”,它并不复杂。我遇到的问题是从文件中读取并存储到数组中。
例如,我有一行“LDAA#$ 45”,我首先将“LDAA”保存到字符串数组中,将“#$ 45”保存到第二个字符串数组中。我按原样使用第一个数组,但对于第二个数组,我只需要知道该数组中的第一个字母或符号是什么,这样我就可以知道如果我需要结束语句。
进入LDAA的代码是这样的:
if(code[i]=="LDAA"){ //code is my array for the first word read.
if(number[i]=="#"){ //Here's where I would only need to read the first symbol stored in the array.
opcode[i]="86";
}
}
我用来从文件中读取的代码与Reading a file into an array中的代码类似?
我不确定这是否完全可能,因为我在网上找不到类似的内容。
答案 0 :(得分:1)
根据number
的类型,您需要:
if(number[i]=='#'){
或
if( number[i][0]=='#'){
此外,code[i]
,opcode[i]
类型为std::string
或char*
。 [希望前者。]
答案 1 :(得分:0)
你已经标记了这个C ++,所以我假设你的数组包含std::string
个,在这种情况下:
#include <string>
#include <iostream>
int main()
{
std::string foo = "#$45";
std::string firstLetter = foo.substr(0, 1);
std::cout << firstLetter;
return 0;
}
产生输出:
#
那是你在寻找什么?应用于您的代码:
if(code[i]=="LDAA"){
if(number[i].substr(0, 1)=="#"){
opcode[i]="86";
}
}