C++中如何禁止转义字符转义?比如"C:\node"代表一个在C盘下的node文件夹。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++中如何禁止转义字符转义?比如"C:\node"代表一个在C盘下的node文件夹。相关的知识,希望对你有一定的参考价值。

比如:用C++可以获取文件路径:【C:\Program Files\Adobe\Adobe Bridge CS6 (64 Bit)】,但是实际使用时,我需要的文件路径为【C:\\Program Files\Adobe\\Adobe Bridge CS6 (64 Bit)】。在C#中可以在路径名前面加一个"@"来禁止转义,在C++中有没有类似的实现方式?希望能够讲解详细一点。谢谢。

参考技术A

    C++11的raw-string-literal,例如R"(Address)"或者R"---(Address)---",括号外面的必须是相同的。

    / 确实似乎在Windows上有效。。

    最弱的,\\\\。

追问

感谢三位大侠的回答。用"/"代替"\\"确实有效。给你们三位都点一个赞吧。。。

参考技术B C++中没有这种功能,不过我记得当年为了在读取文件路径中绕过这个恶心的 \\ 尝试使用 / 代替,结果成功了本回答被提问者采纳 参考技术C C++文件操作中用/代替//就行了。

C# 如何去掉string中所有转义字符(特殊符号)?

例如,"\b\0\0XXXX-AP\0\0\0\0\0\0"。取其中转义字符以外的部分(即XXXX-AP部分),该怎么取?转义字符的位置不能确定,种类也不固定。

PS:以上string是从byte[]转换来的。也可以在byte[]那一步下手。
byte[] ssid = (byte[])mo["Ndis80211SsId"];
string ssidString = Encoding.ASCII.GetString(ssid);

1、去掉字符串中的转义等特殊字符:

stringinputString=@”helloworld]\\“;

StringBuildersb=newStringBuilder();

string[]parts=inputString.Split(newchar[]’‘,‘\\n’,‘\\t’,‘\\r’,‘\\f’,‘\\v’,’\\’,StringSplitOptions.RemoveEmptyEntries);

intsize=parts.Length;

for(inti=0;i<size;i++);

sb.AppendFormat(“0“,parts[i]);

2、删除字符串头尾的转义等特殊字符串:

使用SubString和Remove来操作

比如去掉结尾的转义字符,可以使用

inputString.SubString(0,inputString.Length-1);

inputString.SubString(0,inputString.Length-2);

inputString.SubString(0,inputString.Length-3);

扩展资料

C#字符串取消转义字符的转义作用,使其正常显示

usingSystem;

usingSystem.Collections.Generic;

usingSystem.ComponentModel;

usingSystem.Data;

usingSystem.Drawing;

usingSystem.Linq;

usingSystem.Text;

usingSystem.Windows.Forms;

namespacetest1

publicpartialclassForm2:Form

publicForm2()

InitializeComponent();

privatevoidbutton1_Click(objectsender,EventArgse)

stringstr=@"D:\\document\\test.txt";

stringstr1="D:\\\\document\\\\test.txt";

MessageBox.Show(str+"---"+str1);

参考技术A using System.Linq;

string st = "\b\0\0XXXX-AP\0\0\0\0\0\0";
string s = new string((from c in st.ToCharArray() where char.IsControl(c) select c).ToArray());本回答被提问者和网友采纳
参考技术B string st = "\b\\\0\0XXXX-AP\0\0\0\0\0\0";
st = st.Trim(new char[] '\'', '\"', '\\', '\0', '\a', '\b', '\f', '\n', '\r', '\t', '\v' );
参考技术C -----------
-----------
这个我估计必须得把所有的转义字符先存起来,
然后再一个个来比较

以上是关于C++中如何禁止转义字符转义?比如"C:\node"代表一个在C盘下的node文件夹。的主要内容,如果未能解决你的问题,请参考以下文章

Shell脚本之循环语句和转义字符

C++特殊字符转义序列

c语言中不按转义字符处理是啥意思

Shell编程之循环语句和函数

关于易语言的转义字符

在 C++ 中定义 std::string 没有转义字符