1

我目前正在为 MC68HC11 编写“伪汇编编译器”,这并不复杂。我遇到的问题是从文件中读取并存储到数组中。

例如,我有“LDAA #$45”行,我首先将“LDAA”保存到字符串数组中,将“#$45”保存到第二个字符串数组中。我按原样使用第一个数组,但对于第二个数组,我只需要知道该数组中的第一个字母或符号是什么,这样我就可以知道我需要结束的 if 语句。

进入 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";
  }
}

我用于从文件中读取的代码类似于将文件读入数组中的代码?

我不确定这是否完全可行,因为我在网上找不到类似的东西。

4

2 回答 2

1

根据 的类型number,您需要:

if(number[i]=='#'){ 

或者

if( number[i][0]=='#'){ 

此外,是code[i]opcode[i]类型std::stringchar*。[希望是前者。]

于 2013-04-16T00:58:26.230 回答
0

你已经标记了这个 C++,所以我假设你的数组包含std::strings,在这种情况下:

#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";
  }
}
于 2013-04-16T01:00:53.773 回答