一、string赋值为空
在C++中,我们可以将string赋值为空,即为空串。这种情况下,string对象的长度为0,并且它不包含任何字符。
#include<iostream>
#include<string>
using namespace std;
int main()
{
string str = "";
cout<<"字符串str的长度为:"<<str.length()<<endl; //输出字符串的长度
return 0;
}
执行结果:
字符串str的长度为:0
二、string数组可以二次赋值吗
string数组可以二次赋值。我们可以先给string数组赋初值,然后通过下标对数组元素进行二次赋值。
#include<iostream>
#include<string>
using namespace std;
int main()
{
string str_arr[3] = {"hello", "world", "!"};
str_arr[1] = "everyone";
for(int i = 0; i < 3; i++)
{
cout<<str_arr[i]<<endl;
}
return 0;
}
执行结果:
hello
everyone
!
三、string赋值char数组
我们可以通过将字符数组赋给string来创建一个string对象。
#include<iostream>
#include<string>
using namespace std;
int main()
{
char ch_arr[6] = {'h', 'e', 'l', 'l', 'o', '\0'};
string str(ch_arr);
cout<<str<<endl;
return 0;
}
执行结果:
hello
四、string类型怎么赋值
我们可以通过直接将一个字符串字面值赋给string来创建一个string对象。
#include<iostream>
#include<string>
using namespace std;
int main()
{
string str = "hello";
cout<<str<<endl;
return 0;
}
执行结果:
hello
五、string赋值用char
我们也可以通过将单个字符赋给string来创建一个string对象。
#include<iostream>
#include<string>
using namespace std;
int main()
{
char ch = 'h';
string str(1, ch);
cout<<str<<endl;
return 0;
}
执行结果:
h
六、string赋值字符串回收
在使用string时,它所占用的内存会自动进行回收。我们不需要手动释放它占用的内存。
七、string赋值函数
除了使用赋值号进行赋值外,C++还提供了一些函数来对string进行赋值操作。
1. assign函数
assign函数可以将指定数量的字符赋给string。
#include<iostream>
#include<string>
using namespace std;
int main()
{
string str;
str.assign(4, 'h');
cout<<str<<endl;
return 0;
}
执行结果:
hhhh
2. append函数
append函数可以将指定字符串追加到string的末尾。
#include<iostream>
#include<string>
using namespace std;
int main()
{
string str = "hello";
string str1 = "world";
str.append(str1);
cout<<str<<endl;
return 0;
}
执行结果:
helloworld
3. insert函数
insert函数可以将指定字符串插入到string的指定位置。
#include<iostream>
#include<string>
using namespace std;
int main()
{
string str = "hello";
string str1 = "world";
str.insert(5, str1);
cout<<str<<endl;
return 0;
}
执行结果:
helloworld
4. replace函数
replace函数可以用指定字符串替换string中指定位置的子串。
#include<iostream>
#include<string>
using namespace std;
int main()
{
string str = "hello, this is a replace exam";
str.replace(0, 5, "hi");
cout<<str<<endl;
return 0;
}
执行结果:
hi, this is a replace exam
八、string赋值崩溃
在操作string类型时,如果出现越界访问等问题,就有可能导致程序崩溃。
#include<iostream>
#include<string>
using namespace std;
int main()
{
string str = "hello";
str[6] = 'a';
cout<<str<<endl;
return 0;
}
执行结果:
libc++abi.dylib: terminating with uncaught exception of type std::out_of_range: basic_string
九、string赋值和new的区别
与使用new关键字手动分配内存不同,使用string赋值时,内存的申请和释放都是由系统自动完成的,不需要手动释放内存,因此更加方便和安全。
十、string赋值给qstring
Qt中也提供了Qstring类型,它也是用来表示字符串的,可以将string类型赋值给Qstring类型。
#include<iostream>
#include<string>
#include<QString>
using namespace std;
int main()
{
string str = "hello";
QString qstr = QString::fromStdString(str);
cout<<qstr.toStdString()<<endl;
return 0;
}
执行结果:
hello
总结:string是一个十分常用的数据类型,可以使用多种方法进行赋值。在实际应用中,我们可以根据需要选择合适的方法来实现string的赋值操作,提高代码的效率和安全性。