C++ String 及其与char[]的比较

在学习C++之前  一般都是学过了C语言了

在C语言中   我们对字符串进行保存操作  使用的是char[]

但是在C++中    string比char[]的使用更为频繁  常见    下面稍微讲一下我对于string的认知

1.与其他的标准库类型一样   用户程序需要使用String类型对象  就必须包含相关的头文件   (为了编写方便   需要提供合适的using声明)

#include <string>
using std::string;

2.string对象的定义与初始化

    string s1;//创建空字符串
    string s2("wo yao ac");//创建初始值为wo yao ac的字符串s2
    string s3(s2);//创建s2的副本   s3值的改变  不影响s2
    string s4(2,‘a‘);//创建字符串s4   值为2个字符‘a’
    string s5=s2+s3;//创建字符串s5   值为s2+s3

输出结果   为

3.string的读写

在C中  我们使用 下面俩种方法读入字符串

scanf("%s",s1);
gets(s1);

而在C++中    string类型的数据使用的读入方法是cin

cin>>s1;

读取并忽略开头的所以空白字符   读取字符串至再次遇到空白字符为止    类似于scanf("%s",s1);

不过在解决问题的时候   我们不可能只需要保存连续的非空字符

这时候我们就需要一个像gets()一样的读入方法      getline(cin,s1);

4.string对象的操作

    s1.empty();   //判断s1是否为空   是就返回true   不是就返回false
    s2.size();    //返回s2中的字符数目
    s1[i];   //返回s1中下标为i的那个字符
    s1+s2;  //返回一个字符串  其等于s1的值后面紧接着s2
    s1=s2;   //将s2的值付给s1
时间: 2024-10-08 09:47:04

C++ String 及其与char[]的比较的相关文章

char*,string和const char*间的转换

//1.char*转string char* c ="abc"; string s(c); //2.const char*转string const char* c_s ="abc"; string s(c_s); //3.string转const char* string s ="abc"; const char* c_s = s.c_str(); //4.string转char* string s="abcde"; con

将string转换成char* (转)

原文:http://blog.sina.com.cn/s/blog_786ce14d01014lpr.html string 是c++标准库里面其中一个,封装了对字符串的操作把string转换为char* 有3中方法:1.data如:string str="abc";char *p=str.data();%这行应更正为char*p=(char*)str.data();,引自贴内网友的回复 2.c_str如:string str="gdfd";    char *p=

warning:deprecated conversion from string constant to &#39;char *&#39;

warning:deprecated conversion from string constant to 'char *' 解决方案 #include <iostream> using namespace std; int fuc(char *a) { cout << a << endl; } int main() { fuc("hello"); } Linux 环境下当GCC版本比较高时,编译代码可能出现的问题. 主要原因是: char * 指针

Java判断回文语句的程序(可变参数,String转化为char数组)

static void Huiwen(char... cs){     //char... cs  支持可变参数格式为 //(类型名... 变量名)--形参列表,相当于建立了一个长度可变的动态数组,系统根据用户需求来确定数组的长度 int b_ool=1; for(int i=0;i<cs.length/2;i++)    //length为这个可变数组的长度,注意此时长度为数组下表加1,通过cs.length-i-1可知 if(cs[i]!=cs[cs.length-i-1   // 判断 ]

将string转换成char型的一般方法

C++文件读取中: infile in: in.open("file.dat",ios::in); 这样是可以的. 但是 string a; a="file.dat" in.open(a,ios::in) 这样的格式编译器将要报错,原因是C++不能识别字符串的文件名. 有时候需要自定义的文件名,就要把string类型转换成char型的. 比如: string a="hello world"; char *b=new char[20]; strcp

string:本质是char类型的数组

一个字符串,可以看作是多个char组成的数组,本质就是char类型数组. 字符串是 Unicode 字符的有序集合,用于表示文本.所以String 对象是 Char 对象的有序集合,用于表示字符串.String 对象的值是该有序集合的内容,并且该值是不可变的.字符串本质是字符数组--这是一个非常重要的概念,了解这个概念就可以全面的理解和把握字符串的各种特征. 由于字符串是字符数组,因此字符串可以直接当数组使用,通过下标的模式访问字符串中的每一个字符,或者可以将字符串转为字符数组. static

将string转换成char*

把string转换为char* 有3种方法: 1.data 如: string str="abc"; char *p=str.data(); 2.c_str 如:string str="gdfd"; char *p=str.c_str(); 3. copy 如: string str="hello"; char p[40]; str.copy(p,5,0); //这里5,代表复制几个字符,0代表复制的位置 *(p+5)='\0'; //要手动加上

C++: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]

2016-12-5 16:17:09 ---------------------------- 在CentOS下开发CTP系统,引入C++程序的过程中,编译(g++ ****)时,有如下提示 [1]  testMdApi.cpp:15:45: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings] char *ppInstrumentID[] = {"cu0907", "

std::string stringf(const char* format, ...)

std::string stringf(const char* format, ...){ va_list arg_list; va_start(arg_list, format); // SUSv2 version doesn't work for buf NULL/size 0, so try printing // into a small buffer that avoids the double-rendering and alloca path too... char short_b

C++ 将string转换成char*字符串

我们经常会使用C和C++的混合编程,在某些情况下,需要将C++的string,转换成char* 的字符串.下面说两种可行的方法,作为总结. 1. data(); 如: string str="abc"; char*p=(char*)str.data(); 2.c_str(); 如: string str="adcd"; char *p=(char*)str.c_str(); 暂时就记这两种吧,简单而且差不多够用了. 版权声明:本文为博主原创文章,未经博主允许不得转载