对C风格字符串结束符的测试 & 直接用ASCII码输出字符
// szString.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
#include <cassert>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
char const* pstr="10 45"; //为了测试空格的作用中间的3换成了空格
char const* pstr2=pstr;
cout<<"strlen(pstr) = "<<strlen(pstr)<<endl;
assert(strlen(pstr)==5);
/*
for(;*pstr!='\n';pstr++) //结束符错误!会将this is a string以及内部代码段的其他内容打印出来
{
cout<<*pstr;
}
*/
//正确的写法:指向的字符除了空字符外均为true值
while(*pstr)
{
cout<<*pstr;
pstr++;
}
cout<<"***finish"<<endl; //为了显示出字符串的结尾而加上了*号。结果显示10 45***finish
//另一种不太正确的写法
while(*pstr2++)
{
cout<<*pstr2; //在此插入断点进行调试观察指针变化*pstr2=>0('\060')>' '>4>5>0,最后一次pstr2==""
}
cout<<"***finish"<<endl; //结果显示0 45 ***finish(空字符值为ASCII的0(是'\0'而非'\060')显示出来占一个空位)
cout << '\077' << 0 <<'\0'<<'\60'<<endl; //字符数字0的ascii码是48八进制为060 输出:?0 0换行
::system("pause");
return 0;
}
/*注:关于直接用ASCII码输出字符
比如,查一下ASCII码表,我们找到问号字符(?)的ASCII值是63,
那么我们可以把它转换为八进值:77,然后用 '\77'来表示'?'。由于是八进制,
所以本应写成 '\077',但因为C,C++规定不允许使用斜杠加10进制数来表示字符,
所以这里的0可以不写。
用UltraEdit32可以在光标处按ALT+回车来查看当前字符的码值
*/
posted on 2009-04-07 06:52 TobyLin的学习之路 阅读(1511) 评论(0) 编辑 收藏 举报