Closed. This question needs details or clarity。它当前不接受答案。
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            想改善这个问题吗?添加详细信息并通过editing this post阐明问题。
                        
                        3年前关闭。
                                                                                            
                
        
我想用像php这样的boost替换我的文本。

char* find = "a abc text";
char* search[] = { "a", "b", "c", "d", "e" };
char* replace[] = { "f", "g", "h", "i", "j" };
boost::replace_all(find, search, replace);


但是他不能将“ char * const”转换为“ int”。

最佳答案

在C ++中,字符串文字(如"a abc text")是只读的,尝试修改字符串文字将导致未定义的行为。这就是为什么您显示的代码应导致编译器向您发出警告(您具有指向const数据的非const指针),并且如果编译器未发出警告,则您需要启用更多警告。指向字符串文字的指针应始终使用char const*或更常见的const char *

如果要使用可修改的字符串,请使用std::string(或者,如果要使用C样式的字符串,请使用char的数组,例如char find[] = "a abc text")。

10-08 07:52
查看更多