2013-04-16 65 views
1

我目前正在爲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

請參閱本文@ CodeProject上...... 它可能給你一些更好的想法,那麼你現在有... http://www.codeproject.com/Articles/578116/Complete-Managed-Media-Aggregation-Part-III-Quantu – Jay

+0

請提供一些代碼來說明這個問題,讓我們更容易理解它。 – didierc

+0

@didierc增加了一些代碼。 – TuturuJones

回答

0

您已經標記了這個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"; 
    } 
} 
+0

這確實是std :: string和是的,這正是我正在尋找的。非常感謝。 – TuturuJones

1

取決於number的類型,你想要麼:

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

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

而且,是code[i]opcode[i]std::string型或char*的。 [希望是前者。]

+0

它們是std :: string類型。 – TuturuJones

相關問題