设为首页 加入收藏

TOP

C++ 语言基础(1)(八)
2011-01-02 12:41:34 】 浏览:15130
Tags:语言基础
间中,但不显示,因为遇到了终止null。图1.10演示了将数组的第7个元 素赋值为|0的语句前后的字符数组。
之前
Thi
sisastri
ng.\0
之后
This
is\0astri
ng.\0
图1.10字符数组的内容
清单1.6中也可以赋值0而不是'|0',结果相同,因为数字0和char数据类型'|0'是等值的。例如,下列语句是等价的:
str[7] = '|0';
str[7] = 0;
说 明 C++(www.cppentry.com)程序中单引号与双引号是有差别的。向数组元素赋值终止null和其它字符值时,必须用单引号。单引号的作用是将引号内的字符变成整型值(该字符的 ASCII值),然后将这个值存放在内存地址中。将字串赋予字符数组时,必须用双引号。如果用错引号,则编译器会发生编译错误。
字串操作函数
如果你用过具有string数据类型的编程(www.cppentry.com)语言,你可能很不习惯,别人也有同感,所以标准C语言库中提供了几个字串操作函数。表1.3列出了最常用的字串操作函数及其用法说明。关于每个函数的详细说明和实例,见C++(www.cppentry.com) Builder联机帮助。
表1.3字串操作函数
函数 说明
strcat() 将字串接合到目标字串的末尾
strcmp() 比较两个字串是否相等
strcmpi() 比较两个字串是否相等,不考虑大小写
strcpy() 将字串内容复制到目标字串中
strstr() 扫描字串中第一个出现的字串
strlen() 返回字串长度
strupr() 将字串中的所有字符变成大写
sprintf() 根据几个参数建立字串
说 明 这里介绍的字串操作是C语言中的字串处理方法。大多数C++(www.cppentry.com)编译器提供了cstring类,可以简化字串的处理(C++(www.cppentry.com) Builder的Visual构件库中有个AnsiString类,可以处理字串操作。C++(www.cppentry.com) Builder联机帮助中详细介绍了AnsiString类)。尽管C语言中的字串处理方法比较麻烦,但并不过时,C++(www.cppentry.com)编程(www.cppentry.com)人员经常在使用 cstring类和AnsiString类等字串类的同时使用C语言中的字串处理方法。这里不想对表中的每个函数进行举例说明,只想举两个最常用的函数。 strcpy()函数将一个字串复制到另一字串中,源字串可以是变量或直接字串。例如下列代码:
//set up a string to hold 29 characters
char buff[30];
//copy a string literal to the buffer
strcpy (buff,"This is a test.");//display it
cout << buff << end;
//initialize a second string buffer
char buff2[]="A second string.";
//copy the contents of this string to the first buffer
strcpy (buff,buff2);
cout << buff << end1;
字符数组中比数字数组中更容易重载数字末尾。例如下列代码:
char buff[10]= "A string";// later....
strcpy(buff,"This is a test."); //oops!
这 里建立了放10个字符的字符数组,最初指定需要9个字节的字符串(记住终止null)。后来可能忘记了数组长度,将需要16个字节的字串复制到了缓冲区, 对数组重载了六个字节。这个小小错误就擦去了某个内存位置上的六个字节。所以将数据复制到字符数组中时要特别小心。另一个常用的字串函数是 sprintf()。这个函数可以混合文本和数字建立格式化字串。下面例子将两个数相加,然后用sprintf()建立字串以报告结果:
char buff[20];
int x = 10 * 20;
sprintf(buff,"The result is: %d",x);
cout << buff;
执行这个码段时,程序显示下列结果:The result is:200
本 例中%d告诉sprintf()函数此处有个整型值,格式字串末尾插入变量x,告诉sprintf()在字串的这个位置放上变量x的值。 sprintf()是个特别的函数,可以取多个变元。你必须提供目标缓冲区和格式字串,但格式字串后面的变元数是个变量。下面的sprintf()例子用 了另外三个变元:
int x = 20;
int y = 5;
sprintf(buff, "%d + %d", x, y, x + y);
cout << buff;
执行这个码段时,屏幕上显示的结果如下:20 + 5 = 25
说明 C++(www.cppentry.com)字串中的单斜杠表示特殊字符。例如,'\n'表示新行符,'\t'表示跳表符。为了在字串中放上实际的斜杠,要用双斜杠如下:
strcpy(fileName, "c:\\windows\\system\\win.ini");
许 多编程(www.cppentry.com)人员因为忘了这个简单的事实而夜不能寐,苦苦
首页 上一页 5 6 7 8 下一页 尾页 8/8/8
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇C++ 语言基础2 下一篇C++经典入门指导

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目