如何区分'(单引号)和\'(转义单引号) 如题,'和\'都占一个字符,而且ascii都是39如何区分这两个字符呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 char *str="this is a "test".";如果不转义,以上语句报错。这个只是给编译器看的。 如题,'和\'都占一个字符,而且ascii都是39如何区分这两个字符呢?在编译器中'',之间的表示是一个字符。\',一般于用将 ' 赋值给某个变量。如:char c1='a'; //表示将a这个字符赋值给c1char c2='\''; //表示将' 这个字符赋值给c2 单引号har *str='this is a 'test'.';单引号就单引号。这个只是给语言的编译/解释程序看的。CPU处理的,还是'而非\'; 首先, 你要明白为什么要有 \'这样的符号出现?比如你的程序中需要判断查找一个串: "abcd'efg" 中是否有字母b.可能你会写这样的程序char buf[10] = "abcd'efg";char ch = 'b';for(int i=0; i<strlen(buf); ++i){ if( ch == buf[i]) { printf("找到字符b了"); }}但是现在我想查找 ' 这个字符. 你可能会说, 简单, 把代码中那个b改成'即可.char buf[10] = "abcd'efg";char ch = ''';//只修改这里for(int i=0; i<strlen(buf); ++i){ if( ch == buf[i]) { printf("找到字符b了"); }}这时你编译会发现编译不能通过, 说: error C2137: 空字符常量因为'在这里已经有特殊作用了, 但我们又想使用这个符号怎么办呢.这时转义字符就闪亮登场了 \' 就是说我想要'号, 但这个点号不要给我解释成特殊用途了.char ch='''; 修改成 char ch='\''; 这样说不知道能不能让楼主理解这个转义字符. 其它字符加\来转义也是同样的道理.比如一个字符串中的双引号": char buf[] = "abcde\"1\"cdef";printf输出后来实际上是: abcde"1"cdef 转义符其实也是一个字符,你都转为整数看下他们的ASC码吧 输入法是如何被激活的? 有关ActiveX控件的问题,甚急 VC2005 中的单选按钮怎么用? 新手程序分享 如何在一个新建的MFC基于对话框的 Dlg上实现连接ODBC //万谢!! 怎麼樣把資料輸出為EXCEL 为什么我用VisualC++6.0编程的时候,写好代码之后组建的时候就卡住拉!总是是就绪!怎么解决? 网络问题,兄弟们进来出个主意 如何将现有vc++源代码应用程序编译为*.dll,或*.ocx ???多谢了!!! 一个关于COleDateTime的问题 VC6.0类视图打开出现好多类 不是对话框的类,急求指导。。。 八款开源 Android 游戏引擎 (巨好的资源)
如果不转义,以上语句报错。
这个只是给编译器看的。
\',一般于用将 ' 赋值给某个变量。如:char c1='a'; //表示将a这个字符赋值给c1
char c2='\''; //表示将' 这个字符赋值给c2
har *str='this is a 'test'.';
单引号就单引号。这个只是给语言的编译/解释程序看的。CPU处理的,还是'而非\';
可能你会写这样的程序
char buf[10] = "abcd'efg";
char ch = 'b';
for(int i=0; i<strlen(buf); ++i)
{
if( ch == buf[i])
{
printf("找到字符b了");
}
}但是现在我想查找 ' 这个字符. 你可能会说, 简单, 把代码中那个b改成'即可.
char buf[10] = "abcd'efg";
char ch = ''';//只修改这里
for(int i=0; i<strlen(buf); ++i)
{
if( ch == buf[i])
{
printf("找到字符b了");
}
}这时你编译会发现编译不能通过, 说: error C2137: 空字符常量
因为'在这里已经有特殊作用了, 但我们又想使用这个符号怎么办呢.
这时转义字符就闪亮登场了 \' 就是说我想要'号, 但这个点号不要给我解释成特殊用途了.char ch='''; 修改成 char ch='\''; 这样说不知道能不能让楼主理解这个转义字符. 其它字符加\来转义也是同样的道理.
比如一个字符串中的双引号": char buf[] = "abcde\"1\"cdef";
printf输出后来实际上是: abcde"1"cdef