Closed. This question needs details or clarity。它当前不接受答案。
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            想改善这个问题吗?添加详细信息并通过editing this post阐明问题。
                        
                        3年前关闭。
                                                                                            
                
        
确实是愚蠢的c ++问题,但我看不到我所需要的解决方案。我有一个const char *,我想从自己的char *中提取各种值。例如

const char* atr;
//
//Data is placed in atr
//

//Here's what I want to do, but obviously this doesn't compile
char* _ts = atr[0] + atr[1];
char* _t0 = atr[2] + atr[3];


在此先感谢一吨。我每天都是C ++开发人员,基本上是在C ++ 11和更高版本上成长的,因此处理字符指针对我来说有点奇怪。

最佳答案

与C ++不同,C不允许您重载运算符,而运算符是负责使用运算符std::string进行+串联的功能。因此,在C中,您将获得两个字符代码的总和,并将它们写入字符指针。那不是你想要的。

如果从中选择字符的位置数量是固定的,则可以使用初始化构造C字符串:

char _ts[] = { atr[0], atr[1], 0 };
char _t0[] = { atr[2], atr[3], 0 };


请注意最后有空终止符,当您希望将_ts_t0用作C字符串时,这是必需的。

Demo.

09-27 04:40