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

时间:2013-04-16 00:41:01

标签: c++ arrays

我正在为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中的代码类似?

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

2 个答案:

答案 0 :(得分:1)

根据number的类型,您需要:

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

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

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

答案 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";
  }
}