对C++的atoi(),substr(),c_str()函数的理解

[来源] 达内    [编辑] 达内   [时间]2012-10-12

substr()函数原型为:basic string::substr(string,start,length),也可把string移到外面,为string &a,a.substr(start,length),其中a是待截取的字符串,start表示从截取开始的前一位,length表示截取长度

  刚开始接触C++,很多不懂的地方,翻看老大给的代码其中 year = atoi(dateStr.substr(0, 4).c_str());云里雾里。

  year = atoi(dateStr.substr(0, 4).c_str());

  里面包含三个函数,分别是atoi(),substr(),c_str().

  百度:

  atoi()函数原型为: int atoi(char *str),用途是将字符串转换成一个整数值,str是待转化成整数值的字符串.成功则返回转化后的整数值,失败返回0.

  substr()函数原型为:basic string::substr(string,start,length),也可把string移到外面,为string &a,a.substr(start,length),其中a是待截取的字符串,start表示从截取开始的前一位,length表示截取长度,例如string &a="hello world",则a.substr(6,5)=world.

  c_str()函数原型为:const char *c_str(),如果要将string对象,转化为char*对象,c_str()提供了这样一种方法,它返回一个客户程序可读不可改的指向字符数组的指针。

  所以year=atoi(dateStr.substr(0,4).c_str())的作用就是,截取string型的对象dateStr,并转化为char*对象,然后将此字符串转换成一个整数值,赋值给year(year是int型).

资源下载