| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 645 人关注过本帖
标题:转义字符问题
只看楼主 加入收藏
书中叶
Rank: 2
来 自:河北省唐山市
等 级:论坛游民
帖 子:38
专家分:25
注 册:2010-8-5
结帖率:80%
收藏
已结贴  问题点数:20 回复次数:4 
转义字符问题
我在学习字面值常量的时候,试验水平制表符“/t”的时候遇到了点问题,以下是代码和截图:
程序代码:
#include<iostream>
char main()
{
    std::cout<<"aaaa"<<"\nCC\toptions\tfile.[cC]\n"<<"aa    aa"<<std::endl;
                          // ̄        ̄                 制表符
    return 0;
}
图片附件: 游客没有浏览图片的权限,请 登录注册

为什么第二个水平制表符只显示出一个空格的距离??


另外,我在看书的时候看到了这个:
      “为了兼容C语言,C++中所有的字符串字面值都由编译器自动在末尾添加一个空字符。字符字面值
    'A'
    表示单个字符A,然而
    "A"
    表示包含字母A和空字符两个字符的字符串。”
哪位前辈能用比较形象的语言解释一下??
(我使用标准输出测试了一下,前后两者所站的位置大小都一样,可能是我理解的问题吧)
还有,“字符字面值”与“字符串字面值”是一回事吗?单引号与双引号到底有什么区别?
搜索更多相关主题的帖子: 字符 转义 
2010-08-13 22:11
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:10 
制表符是把下一个字符对齐到下一个制表位上,和空格的数量没关系。
根据传统,每个制表位的间距是 8 个空格的大小。
你试试输出下面的东西,看看是不是帮助理解:
puts(
"1\t2\t3\n"
"11\t12\t13\n"
"111\t112\t114\n"
"1111\t1112\t1113\n"
"111111111\t111111112\t111111113\n"
);
 
第二个问题,你自己再理解理解吧,我想书是说的应该挺清楚了。书上一般讲到字符串的时候,都会捎带讲一讲字符串库函数的简单实现方法什么的,应该可以加深理解。至于字符字面值,可能就是指 ascii 码吧。这不是什么特别正式的说法。知道字面是什么意思吗?就是“和你看见的一样”的意思,“表面上的”的意思。按字面意思理解这个词就可以了。

[ 本帖最后由 pangding 于 2010-8-13 22:43 编辑 ]
2010-08-13 22:41
书中叶
Rank: 2
来 自:河北省唐山市
等 级:论坛游民
帖 子:38
专家分:25
注 册:2010-8-5
收藏
得分:0 
多谢二楼前辈解答,第一个我明白了,第二个还不是很清楚,“字面”的意思我知道,
但到底单引号和双引号有什么区别??
“"A"表示包含字母A和空字符两个字符的字符串”这里的空字符在哪?

科学家是要把可能的事变为可能,小说家是要把不可能的事变为可能
2010-08-15 19:13
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:10 
单引号是引字符的,双引号是引字符串的。

字符就是只有一个字母的,比如:'a', 'b', 'A', '1', '\n', 这样的都是合法的字符。编译器一般会把它们理解成 ascii 码。
字符串可以有很多个字母,比如:"abcd", "ABCD124", "hello world!\n", "My name is \"pangding\"!\n", 这样的都是字符串。
因为引用都少个都行,那么就很难得知一个字符串的具体长度了。所以标准规定,合法的 C 风格字符串,必须用 '\0' 结束。当你用引号引用时,那个 '\0' 会被自动添加到末尾。
因此:
char s[] = "abcd";
等价于:
char s[] = { 'a', 'b', 'c', 'd', '\0' }

其实也不算什么特殊情况的,就是字符串只有一个字母。
就像 "A", 但那也是字符串,即使只有一个字母,也得用 '\0' 结尾。实际上就像 'A' '\0' 这个样子。
2010-08-15 23:54
书中叶
Rank: 2
来 自:河北省唐山市
等 级:论坛游民
帖 子:38
专家分:25
注 册:2010-8-5
收藏
得分:0 
明白了,多谢四楼前辈指点

科学家是要把可能的事变为可能,小说家是要把不可能的事变为可能
2010-08-16 08:45
快速回复:转义字符问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014072 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved