String 类 的c_str()函数

先看一个例子:
int lines, i;
    int left, right;
  <strong><u>  string strleft,</u></strong>
    pNode tPointerArray[MaxNum];
    pNode tPointer;
    bool flag[MaxNum] = {false};
    cin >> lines;
    for ( i = 0; i < lines; i++ )
    {
        tPointer = ( pNode )malloc( sizeof( tNode ) );
        cin >> strleft >> strright;
        if ( strleft == "-" )
        {
            left = -1;
        }
        else
        {
    <strong><u>   left = atoi(strleft.c_str());</u></strong>
            flag[left] = true;
        }

这段代码里left的值到底是什么意思,函数strleft.c_str();又是什么意思?

今天查到《C++Primer》
string的函数c_str()是获取这个字符串的首指针,例如: string str = "1234";那么 char* pStr = str.c_str();  中 pStr就是指向"1234"字串的首地址 '1' 。

那么知道:

 atoi 函数是把字符串的数字转为数字型的数值,
 例如:int n = atoi("1234");那么结果是n的数值就为1234。
 strleft 是 string 字符串类型的对象,
 那么string的函数c_str()是获取这个字符串的首指针,
 例如: string str = "1234";那么 char* pStr = str.c_str();  中 pStr就是指向"1234"字串的首地址 ‘1‘ 。
 那么 left=atoi(strleft.c_str());就是把 strleft 这个字串(数字)转换为数值型并赋值给 left。
				
时间: 2024-12-24 15:55:15

String 类 的c_str()函数的相关文章

[C++]string类的查找函数

string类的查找函数: int find(char c, int pos = 0) const;//从pos开始查找字符c在当前字符串的位置 int find(const char *s, int pos = 0) const;//从pos开始查找字符串s在当前串中的位置 int find(const char *s, int pos, int n) const;//从pos开始查找字符串s中前n个字符在当前串中的位置 int find(const string &s, int pos =

Java String类的hashCode()函数

1 ==和equals() ==比较两个对象是否指向同一个内存地址. equals()方法判断两个对象的值是否相等. 2 String.equals() String类对equals()方法重写如下: 1 public boolean equals(Object anObject) { 2 if (this == anObject) { 3 return true; 4 } 5 if (anObject instanceof String) { 6 String anotherString =

string类的一些函数方法

1.请查看String.equals()方法的实现代码,注意学习其实现方法: (1)源程序: public class StringEquals { /** * @param args the command line arguments */ public static void main(String[] args) { String s1=new String("Hello"); String s2=new String("Hello"); System.ou

c++中string类中的函数

C/C++ string库(string.h)提供了几个字符串查找函数,如下: memchr 在指定内存里定位给定字符 strchr 在指定字符串里定位给定字符 strcspn 返回在字符串str1里找到字符串str2里的任意一个字符之前已查找的字符数量 strrchr 在字符串里定位给定字符最后一次出现的位置 strpbrk 在字符串str1里定位字符串str2里任意一个首次出现的字符 strspn 返回字符串str1从开始字符到第一个不在str2中的字符个数 strstr 在字符串str1中

关于string类中find函数的讲解

以下所讲的所有的string查找函数,都有唯一的返回类型,那就是size_type,即一个无符号整数(按打印出来的算).若查找成功,返回按查找规则找到的第一个字符或子串的位置:若查找失败,返回npos,即-1(打印出来为4294967295). (1)string::find函数 #include<iostream> #include<string> using namespace std; int main() { //测试size_type find (charT c, siz

string类以及其常用的成员函数

标准C++中提供的string类得功能也是非常强大的,一般都能满足我们开发项目时使用.现将具体用法的一部分罗列如下,只起一个抛砖引玉的作用吧,好了,废话少说,直接进入正题吧!要想使用标准C++中string类,必须要包含#include <string>// 注意是<string>,不是<string.h>,带.h的是C语言中的头文件using  std::string;using  std::wstring;或using namespace std; string类的

C++ string类及其函数的讲解

文章来源于:http://www.cnblogs.com/hailexuexi/archive/2012/02/01/2334183.html C++中string是标准库中一种容器,相当于保存元素类型为char的vector容器(自己理解),这个类提供了相当丰富的函数来完成对字符串操作,以及与C风格字符串之间转换,下面是对string一些总结<引用> 一,C语言的字符串 在C语言里,对字符串的处理一项都是一件比较痛苦的事情,因为通常在实现字符串的操作的时候都会用到最不容易驾驭的类型——指针.

string 类常用函数[转]

string类的构造函数:string(const char *s); //用c字符串s初始化string(int n,char c); //用n个字符c初始化此外,string类还支持默认构造函数和复制构造函数,如string s1:string s2="hello":都是正确的写法.当构造的string太长而无法表达时会抛出length_error异常 string类的字符操作:const char &operator[](int n)const;const char &a

string类的用法笔记

要想使用标准C++中string类,必须要包含 #include <string>// 注意是<string>,不是<string.h>,带.h的是C语言中的头文件 using  std::string; using  std::wstring; 或 using namespace std; 下面你就可以使用string/wstring了,它们两分别对应着char和wchar_t. string和wstring的用法是一样的,以下只用string作介绍: string类