c++怎么给一个string赋值

如题所述

#include "stdafx.h"

#include

#include

#include"string" //操作字符串必须包含的头文件

using namespace std;

void main()

{

string s1 = "aaaaa";

string s2("bbbbb");

string s3 = s2; //通过拷贝构造函数,初始化s3

string s4(10, 'a');

string s5 = "hello"+"world";  //错误

cout << "s1:" << s1 << endl;

cout << "s2:" << s2 << endl;

cout << "s3:" << s3 << endl;

cout << "s4:" << s4 << endl;

return ;

}

扩展资料

C++右值引用和移动赋值函数:

编程语言中赋值表达式左边的值称为左值,右边的值称为右值。左值对应内存的一段命名空间,可以用取址运算符“&”取出内存地址。

此时的内存单元有或显式或隐式使用的地址值和实际值。右值则是显式利用的是内存单元的实际值,其临时存在于内存或寄存器中。使用“&&”运算符可以定义一个右值引用,将一个右值转变为一个左值,move()函数可以将一个左值转换为一个右值。

左值引用,使用T&,只能绑定左值(其中T是一个具体类型)。右值引用,使用T&&,只能绑定右值;常量左值,使用constT&,既可以绑定左值又可以绑定右值;已命名的右值引用,编译器会认为是个左值。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-11-11

C++中,string是一个类(注意,不是类型)。它的赋值,直接将字符串等于给它,或将同类的变量赋给它即可,可以参考以下的代码:

string LSStr,LSStrA; //定义

LSStr = 'aabbccdd'; //赋值

LSStrA = LSStr; //同类赋值


扩展资料:

 C++标准库中string类以类型的形式对字符串进行封装,且包含了字符序列的处理操作。

注意

String类是不可变(final)的,对String类的任何改变,都是返回一个新的String类对象。这样的话把String类的引用传递给一个方法,该方法对String的任何改变,对原引用指向的对象没有任何影响,这一点和基本数据类型相似,如下:

string s1,s2;

s1="abc";

s2=s1;

s2="def";

//这样操作之后s1是"abc",s2是"def".

参考资料来源:百度百科-string

本回答被网友采纳
第2个回答  2020-03-03

具体如下:

#include "stdafx.h"

#include

#include

#include"string" //操作字符串必须包含的头文件

using namespace std;

void main()

{

string s1 = "aaaaa";

string s2("bbbbb");

string s3 = s2; //通过拷贝构造函数,初始化s3

string s4(10, 'a');

string s5 = "hello"+"world";  //错误

cout << "s1:" << s1 << endl;

cout << "s2:" << s2 << endl;

cout << "s3:" << s3 << endl;

cout << "s4:" << s4 << endl;

return ;

}

扩展资料:

C++右值引用和移动赋值函数:

编程语言中,赋值表达式的左边的值称为左值,右边的值称为右值。 左值对应于内存中的一个名称空间,可以使用地址运算符“&”获取内存地址。

此时的存储单元具有显式或隐式使用的地址值和实际值。 右值是显式使用的存储单元的实际值,该值临时存在于存储器或寄存器中。 “ &&”运算符可用于定义右值引用,将右值转换为左值,而move()函数可将左值转换为右值。

使用T&的左值引用只能绑定左值(其中T是具体类型)。 使用T &&的右值引用只能绑定右值; 使用constT&的常量左值可以绑定左值和右值; 命名的右值引用,编译器会将其视为左值。

本回答被网友采纳
第3个回答  推荐于2017-11-22

一、C++中,string是一个类(注意,不是类型)。它的赋值,直接将字符串等于给它,或将同类的变量赋给它即可。比如:

string LSStr,LSStrA; //定义
LSStr = 'aabbccdd'; //赋值
LSStrA = LSStr; //同类赋值


1、不同编译环境下的C++,对字符串的处理稍有差别。

2、最原始的C语言中,没有string,在C++里才有了string这个类。

3、注意,string是一个类,不是类型。类这个概念是C++才特有的,它的存在是为了模块化编程。类是一个相对复杂的东西,它就象一个单元,包含了自已内部的数据定义、函数等等。


二、值得注意的是,早期的C中,对字符串的处理是用字符数组来进行的,比如:

char s[30]; 
strcpy(s, "Good News!"); /*给数组赋字符串*/ .

或是,让编译器在定义时,自动的处理(实际上还是做了上面的两步):

char s[30] = "Good News!";

三、对于字符串的处理,C++中其实是一个相对不好理解的东西,因为这涉及到了C/C++语言的指针,也就是说,无论是什么方式,它的最根本的本质是用一个指针指向了存放字符串的地址。string这个“类”除了指针外,还扩展了常用的一些处理函数在里面,比如字符串截取之类的。


四、还有一种比较容易混的:

char *str = "Hello World!";

这说的是,定义一个char指针str,它指向字符串"Hello World!"存放的地址的第一个。


五、关于字符串的处理,细说起来,还是有一些东西需要你自个去理解的,再说一次,主要还是涉及了指针,所以不太好理解。但是这些是学C/C++必需要理解的东西。指针、类、字符串,可以说是C++里的难点,多练多思考吧。

本回答被提问者采纳
第4个回答  2016-09-04

你是指这样?:

char *str = "Hello World!";

相似回答