2013-03-21 72 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]