社区
C语言
帖子详情
这个“\377\373^C”(三个字符)是什么东东?
踏岸寻柳
2005-04-01 02:16:02
程序中收到了三个字符(长度是3),打屏输出是“ÿþ
”,记录到日志中是“\377\373^C”。
将它记录到一个自定义的结构中,传给别的程序,发现结构内容变了,好像结构的头几个字符被消去了。
弄不明白是怎么回事,望大虾赐教!
...全文
1573
8
打赏
收藏
这个“\377\373^C”(三个字符)是什么东东?
程序中收到了三个字符(长度是3),打屏输出是“ÿþ ”,记录到日志中是“\377\373^C”。 将它记录到一个自定义的结构中,传给别的程序,发现结构内容变了,好像结构的头几个字符被消去了。 弄不明白是怎么回事,望大虾赐教!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
oyljerry
2005-04-01
打赏
举报
回复
八进制数据
jk88811
2005-04-01
打赏
举报
回复
好像如果要用\后面接八进制数字,应该有0吧
\032
像上面一样!
我不太记得了!
sanyou98
2005-04-01
打赏
举报
回复
up
zhousqy
2005-04-01
打赏
举报
回复
up
scriptren
2005-04-01
打赏
举报
回复
楼上的利害 学习
pcboyxhy
2005-04-01
打赏
举报
回复
字符型量
字符型量包括字符常量和字符变量。
字符常量
字符常量是用单引号括起来的一个字符。例如'a','b','=','+','?'都是合法字符常量。在C语言中,字符常量有以下特点:
1.字符常量只能用单引号括起来,不能用双引号或其它括号。
2.字符常量只能是单个字符,不能是字符串。
3.字符可以是字符集中任意字符。但数字被定义为字符型之后就
不能参与数值运算。如'5'和5 是不同的。'5'是字符常量,不能参与运算。
转义字符
转义字符是一种特殊的字符常量。转义字符以反斜?quot;\"开头,后跟一个或几个字符。转义字符具有特定的含义,不同于字符原有的意义,故称“转义”字符。例如,在前面各例题printf函数的格式串中用到的“\n”就是一个转义字符,其意义是“回车换行”。转义字符主要用来表示那些用一般字符不便于表示的控制代码。
常用的转义字符及其含义
转义字符 转义字符的意义
\n 回车换行
\t 横向跳到下一制表位置
\v 竖向跳格
\b 退格
\r 回车
\f 走纸换页
\\ 反斜线符"\"
\' 单引号符
\a 鸣铃
\ddd 1~3位八进制数所代表的字符
\xhh 1~2位十六进制数所代表的字符
广义地讲,C语言字符集中的任何一个字符均可用转义字符来表示。表2.2中的\ddd和\xhh正是为此而提出的。ddd和hh分别为八进制和十六进制的ASCII代码。如\101表示字?quot;A" ,\102表示字母"B",\134表示反斜线,\XOA表示换行等。转义字符的使用
void main()
{
int a,b,c;
a=5; b=6; c=7;
printf("%d\n\t%d %d\n %d %d\t\b%d\n",a,b,c,a,b,c);
}
此程序练习转义字符的使用
a、b、c为整数 5->a,6->b,7->c
调用printf显示程序运行结果
printf("%d\n\t%d %d\n %d %d\t\b%d\n",a,b,c,a,b,c);
程序在第一列输出a值5之后就是“\n”,故回车换行;接着又是“\t”,于是跳到下一制表位置(设制表位置间隔为8),再输出b值6;空二格再输出c 值7后又是"\n",因此再回车换行;再空二格之后又输出a值5;再空三格又输出b的值6;再次后"\t"跳到下一制表位置(与上一行的6 对齐),但下一转义字符“\b”又使退回一格,故紧挨着6再输出c值7。
字符变量
字符变量的取值是字符常量,即单个字符。字符变量的类型说明符是char。字符变量类型说明的格式和书写规则都与整型变量相同。
例如:
char a,b; 每个字符变量被分配一个字节的内存空间,因此只能存放一个字符。字符值是以ASCII码的形式存放在变量的内存单元之中的。如x的
十进制ASCII码是120,y的十进制ASCII码是121。对字符变量a,b赋予'x'和'y'值: a='x';b='y';实际上是在a,b两个单元内存放120和121的二进制代码: a 0 1 1 1 1 0 0 0
b 0 1 1 1 1 0 0 1
所以也可以把它们看成是整型量。 C语言允许对整型变量赋以字符值,也允许对字符变量赋以整型值。在输出时, 允许把字符变量按整型量输出,也允许把整型量按字符量输出。 整型量为二字节量,字符量为单字节量,当整型量按字符型量处理时, 只有低八位字节参与处理。
main(){
char a,b;
a=120;
b=121;
printf("%c,%c\n%d,%d\n",a,b,a,b);
}
a ■ b ■
a <-- 120
b <--- 121
显示程序结果 char a,b;
a=120;
b=121;
本程序中说明a,b为字符型,但在赋值语句中赋以整型值。从结果看,a,b值的输出形式取决于printf函数格式串中的格式符,当格式符为"c"时,对应输出的变量值为字符,当格式符为"d"时,对应输出的变量值为整数。
void main(){
char a,b;
a='x';
b='y';
a=a-32;
b=b-32;
printf("%c,%c\n%d,%d\n",a,b,a,b);
}
a,b被说明为字符变量并赋予字符值
把小写字母换成大写字母
以整型和字符型输出
本例中,a,b被说明为字符变量并赋予字符值,C语言允许字符变量参与数值运算,即用字符的ASCII 码参与运算。由于大小写字母的ASCII 码相差32,因此运算后把小写字母换成大写字母。然后分别以整型和字符型输出。
[Practice] //charint a=49;
char b;
char d;
b=a+10;
d=a+b;'Vtable
a,2,49
b,1,随机
d,1,随机
of Vtable
'Vupdate
1,49
2,随机
3,随机
2,';'
3,'l'
of Vupdate
of Practice
[Practice] //char c1,c2;
c1='a';c2='b';
c1=c1-32;c2=c2-32;'Vtable
c1,1,随机
c2,1,随机
of Vtable
'Vupdate
1,随机;2,随机
1,'a';2,'b'
1,'A';2,'B'
of Vupdate
of Practice
kobefly
2005-04-01
打赏
举报
回复
\377
是八进制的一个字符,其ascii嘛为8进制的377
常用的转义字符及其含义
转义字符 转义字符的意义
\n 回车换行
\t 横向跳到下一制表位置
\v 竖向跳格
\b 退格
\r 回车
\f 走纸换页
\\ 反斜线符"\"
\' 单引号符
\a 鸣铃
\ddd 1~3位八进制数所代表的字符
\xhh 1~2位十六进制数所代表的字符
踏岸寻柳
2005-04-01
打赏
举报
回复
错了,上面显示出错,就是打屏输出后面引号里面的部分。
屏幕输出看起来大致上比“■”要瘦一半 ^_^
C语言中
字符
数组只能存放
字符
串?
字符
数组和
字符
串的唯一区别?
C语言中
字符
数组只能存放
字符
串? 不是的,C语言中
字符
数组既可以保存
字符
,又可以保存
字符
串。
字符
数组本意就是是指用来存放
字符
数据的数组。
字符
数组的元素是
字符
类型的。
字符
数组用于存放
字符
或
字符
串。 C语言中...
c语言编程等腰三角形,用c语言编辑一个等腰三角形的讲解过程 一个等腰三角形怎么平均分成
三个
面积相等的三角形?...
用c语言编辑一个等腰三角形的讲解过程 一个等腰三角形怎么平均分成
三个
面积相等的三角形?用c语言编辑一个等腰三角形的讲解过程 一个等腰三角形怎么平均分成
三个
面积相等的三角形?相关问题:匿名网友:等腰三角形的话...
C/C++中的%010u是个什么
东东
?
遇到这样一个小需求, 需要将无符号的整数(最大值是4294967295, 是个10位数)转为
字符
串, 不足10位时, 前面补0. 比如: 0000000000 0000000001 0000000002 0000000003 0000000004 0000000005 0000000006 ...
工作经验到底是个什么
东东
?工作经验从哪里来?
最近周公收到一封一个工作了两年的.NET开发人员的邮件,在这封邮件里这位开发人员说到自己目前的情况,周公在这里解答了一下他所遇到的问题,用周公自己的理解来回答什么是工作经验,如何增加工作经验,如何提高自己...
format C/C++中的%010u是个什么
东东
?
Format 参数是包含三种对象类型的一个
字符
串: * 无格式
字符
复制到输出流; * 转换规范,每个规范导致在值参数列表中检索 1 个或更多个项; * 转义序列。 通常意义上format的格式如下: %[flags]...
C语言
69,371
社区成员
243,080
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章