仅使用存储在数组中的字符串的第一个字母

Using Only the First Letter in a String Stored in an Array

本文关键字:字符串 第一个 数组 存储      更新时间:2023-10-16

我目前正在为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";
  }
}

我使用的代码从文件读取类似于读取文件到数组?

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

根据number的类型,您需要:

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

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

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

您已经标记了这个c++,所以我将假设您的数组包含std::string s,在这种情况下:

#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";
  }
}