2013-03-21 114 views
0
class Main 
{ 
    Struct BranchSub 
    { 
    Sub() 
    { 
     subName[0] = '\0'; 
    } 
    char subName[20]; 
    }; 

    struct MainSub 
    { 
    Sub sub[20]; 
    }; 
}; 

我想要一個方法,當subName與給定文本匹配時,將返回指針subName。 例如像:指向結構成員變量的指針

MainSub test; 
if(strcmp(test.BranchSub[5].subName, "Hello") == 0);//return pointer to `test.Branchsub[5].subName` 

是否有可能? 還是有其他方法可以達到預期的效果嗎?

+3

我建議你使用'std :: string'而不是C數組 – 2013-03-21 15:16:46

+0

它可以是任何返回指向char或指向char常量的指針的函數。不過,我也建議你使用'std :: string'並且例如返回一個對'std :: string'對象的引用 – 2013-03-21 15:18:52

+0

c數組?如果你的意思是字符數組,那麼代碼需要傳輸的設備不支持字符串,那就是prob – Cybercop 2013-03-21 15:18:56

回答

1

是的,可以使用test.BranchSub[5].subName

對於你的問題的第二部分,你應該使用std::string

class Main 
{ 
    struct BranchSub 
    { 
    std::string subName; 
    }; 

    struct MainSub 
    { 
    BranchSub sub[20]; 
    }; 
}; 

然後

MainSub test; 
if(test.sub[5].subName == "Hello") 

更清晰。

你甚至可以使用std::vector<BranchSub>而不是BranchSub sub[20]