一、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的賦值操作,提高代碼的效率和安全性。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/186278.html