草庐IT

str_clean

全部标签

c++ - string::c_str() 在 C++11 中不再以 null 终止吗?

在C++11中basic_string::c_str定义为与basic_string::data完全相同,它又被定义为与*(begin()+n)完全相同和*(&*begin()+n)(当0时)。我找不到任何要求字符串末尾始终包含空字符的内容。这是否意味着c_str()不再保证产生一个以null结尾的字符串? 最佳答案 字符串现在需要在内部使用以null结尾的缓冲区。看operator[]的定义(21.4.5):Requires:pos.Returns:*(begin()+pos)ifpos,otherwiseareferenceto

c++ - 字符串 c_str() 与 data()

我已经阅读了几个地方c_str()和data()之间的区别(在STL和其他实现中)是c_str()总是以null结尾,而data()不是。据我在实际实现中所见,它们要么执行相同的操作,要么data()调用c_str()。我在这里缺少什么?在哪些场景下使用哪个更正确? 最佳答案 文档是正确的。使用c_str()如果你想要一个以空结尾的字符串。如果实现者碰巧实现了data()就c_str()而言,您不必担心,如果您不需要字符串以空值结尾,仍然使用data(),在某些实现中它可能会比c_str()执行得更好。字符串不一定必须由字符数据组成

python - 在 Python 3 中写入文件时,TypeError : a bytes-like object is required, 不是 'str'

我最近迁移到Python3.5。此代码在Python2.7中正常工作:withopen(fname,'rb')asf:lines=[x.strip()forxinf.readlines()]forlineinlines:tmp=line.strip().lower()if'some-pattern'intmp:continue#...code升级到3.5后,我得到了:TypeError:abytes-likeobjectisrequired,not'str'错误在最后一行(模式搜索代码)。我尝试在语句的任一侧使用.decode()函数,也尝试过:iftmp.find('some-pat

php - 使用 str_replace 使其仅作用于第一个匹配项?

我想要一个版本的str_replace(),它只替换$subject中第一次出现的$search。是否有一个简单的解决方案,或者我需要一个hacky解决方案? 最佳答案 没有它的版本,但解决方案一点也不hacky。$pos=strpos($haystack,$needle);if($pos!==false){$newstring=substr_replace($haystack,$replace,$pos,strlen($needle));}非常简单,并且节省了正则表达式的性能损失。奖励:如果您想替换last出现,只需使用strrp

maven-2 - 在 Maven 中覆盖 'clean' 生命周期

我正在阅读一本解释如何覆盖Maven的“默认”生命周期的书。它说:要为包装类型定义新的生命周期,您需要在Plexus中配置LifecycleMapping组件。在您的插件项目中,在src/main/resources下创建一个META-INF/plexus/components.xml。在components.xml中添加如下所示的内容,就大功告成了。通过以下配置,我可以自定义“jar”包装类型的默认生命周期。现在如果我执行$mvn包它直接执行“package”阶段,跳过默认生命周期的所有其他阶段,并执行“maven-zip-plugin”的“echo”目标。org.apache.ma

c# - Visual Studio clean 解决方案不会删除所有被移动的 dll/项目引用

我有一个VS2008C#Web应用程序,其中包含大量对自定义dll的项目引用。这些都位于Web项目的相对路径中。最近我注意到CleanSolution从Web应用程序的bin\debug文件夹中删除了一些但不是全部的dll。例如:False..\..\Components\TowerCo.Utilities\bin\Debug\TowerCo.Utilities.dllFalse..\..\Components\TowerCo.WebControls\bin\Debug\TowerCo.WebControls.dll第一个工作正常(clean清理它,新版本在重建时复制到web项目)但第

visual-studio - Visual Studio 中 Rebuild 和 Clean + Build 的区别

在VisualStudio2008中,重建和Clean+Build有什么区别?Clean+Build与Clean+Rebuild不同吗? 最佳答案 重建=清理+构建(通常)值得注意的细节:对于多项目解决方案,“重建解决方案”对每个项目执行“清理”,然后执行“构建”(可能并行)。而“清洁解决方案”后跟“构建解决方案”首先清理所有项目(可能并行),然后构建所有项目(可能并行)。当项目间的依赖关系开始发挥作用时,这种事件顺序的差异会变得很重要。所有三个操作都对应于MSBuild目标。因此,项目可以覆盖Rebuild操作以执行完全不同的操作

python - 带有负索引的 str.format(list) 在 Python 中不起作用

我在替换字段中使用负索引输出格式化列表,但它引发了一个TypeError。代码如下:>>>a=[1,2,3]>>>a[2]3>>>a[-1]3>>>'Thelast:{0[2]}'.format(a)'Thelast:3'>>>'Thelast:{0[-1]}'.format(a)Traceback(mostrecentcalllast):File"",line1,inTypeError:listindicesmustbeintegers,notstr 最佳答案 这就是我所说的格式字符串规范中的设计故障。根据thedocs,elem

python - __str__ 和 __repr__ 有什么区别?

__str__有什么区别和__repr__在Python中? 最佳答案 Alex总结得很好,但令人惊讶的是,过于简洁。首先,让我重申Alex’spost中的要点。:默认实现是无用的(很难想到一个不会,但是是的)__repr__目标是明确的__str__目标是可读容器__str__使用包含的对象__repr__默认实现没用这主要是一个惊喜,因为Python的默认值往往相当有用。但是,在这种情况下,默认为__repr__其作用如下:return"%s(%r)"%(self.__class__,self.__dict__)会太危险(例如,

ruby - Rake CLEAN/CLOBBER 不删除

我觉得我快疯了。谁能帮忙?我有文件夹c:\project\bin我运行以下命令来执行我的rake脚本cdC:\projectrake在我的抽佣脚本中我有:require'rake/clean'CLOBBER.include('bin')task:default=>[:compile]task:compiledo#donothingend它不会删除“bin”文件夹或“bin”文件夹中的内容。我在Windows(1.86左右)中运行Ruby,并使用geminstallrake安装了rake。我是不是错过了什么。我试过--trace等..但没有得到任何反馈。 最佳