当前位置:七道奇文章资讯编程技术VC/C++编程
日期:2011-03-22 13:56:00  来源:本站整理

C++语言底子-字串操作函数[VC/C++编程]

赞助商链接



  本文“C++语言底子-字串操作函数[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

假如你用过具有string数据范例的编程语言,你大概很不习惯,别人也有同感,所以尺度C语言库中供应了几个字串操作函数.表1.3列出了最常用的字串操作函数及其用法阐明.关于每个函数的具体阐明和实例,见C++ Builder联机帮忙.
表1.3字串操作函数
函数 阐明
strcat() 将字串接合到目标字串的末尾
strcmp() 对比两个字串能否相等
strcmpi() 对比两个字串能否相等,不考虑大小写
strcpy() 将字串内容复制到目标字串中
strstr() 扫描字串中第一个呈现的字串
strlen() 返回字串长度
strupr() 将字串中的全部字符变成大写
sprintf() 按照几个参数成立字串
阐明 这里介绍的字串操作是C语言中的字串处理办法.大大都C++编译器供应了cstring类,可以简化字串的处理(C++ Builder的Visual构件库中有个AnsiString类,可以处理字串操作.C++ Builder联机帮忙中具体介绍了AnsiString类).固然C语言中的字串处理办法对比麻烦,但并不过期,C++编程人员常常在利用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++字串中的单斜杠表示特别字符.比方,'\n'表示新行符,'\t'表示跳表符.为了在字串中放上实际的斜杠,要用双斜杠以下:
strcpy(fileName, "c:\\windows\\system\\win.ini");
很多编程人员因为忘了这个简单的事实而夜不能寐,苦苦折腾.这是个常见的错误,别说我没有奉告你.sprintf()有个兄弟叫wsprintf(),是Windows版的sprintf().Windows程序中大概同时用这两个函数.wsprintf()与sprintf()的作用类似,唯一的差别是不能在格局字串中放上浮点数.C++ Builder程序中两个函数都可以利用,但用sprintf()更好,因为它完好支持浮点数(还可以少输入一个字符).关于sprintf()的进一步介绍,见C++ Builder联机帮忙.

字串数组不但可以有字符数组,还可以有字符数组的数组(即字串数组).这听起来有点复杂,其实前面的Argstest程序中已经用过.这类数组可以分配以下:
char strings[][20] = {
"This is string 1",
"This is string 2",
"This is string 3",
"This is string 4"};
这个代码生成四个字串的数组,每个字串最多放19个字符.固然可以利用这种字串数组,但C++ Builder中还有更简单的字串数组处理办法(将在背面介绍C++ Builder时介绍).阐明 假如常常用到字串数组,该当看看尺度模板库(STL).STL供应了比用C语言式字符数组更便利地存放和操作字串数组的办法.STL中还有个string类.


  以上是“C++语言底子-字串操作函数[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • Ubuntu下面的C语言代码查抄工具Splint
  • C语言本领学习c++经验50条7
  • C语言本领学习c++经验50条8
  • C语言本领学习c++经验50条9
  • C语言本领学习c++经验50条10结束
  • DDBC语句分类
  • <b>linux下C语言实现ARP数据包发送</b>
  • Java通过JNI调用C语言的办法
  • 在Delphi编程中利用C语言代码
  • 基于Oracle OCI的数据拜候C语言接口ORADBI-开辟技术
  • C语言之 插入排序的改良
  • C语言实现端口扫描
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .