詳解string賦值

一、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-hk/n/186278.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-27 05:45
下一篇 2024-11-27 05:45

相關推薦

  • c# enum轉換成string

    本文將從以下幾個方面詳細闡述c#中enum類型轉換成string類型的方法及注意事項。 一、基本語法和示例 c#中的enum類型可以看作是一組有名字的常量值,通常用於定義一組相關的…

    編程 2025-04-29
  • Python文件路徑賦值

    Python中文件操作是非常基本的操作,而文件路徑是文件操作的前提。本文將從多個方面闡述如何在Python中賦值文件路徑。 一、絕對路徑和相對路徑 在Python中,路徑可以分為絕…

    編程 2025-04-28
  • 如何使用Python將輸出值賦值給List

    對標題進行精確、簡明的解答:本文將從多個方面詳細介紹Python如何將輸出的值賦值給List。我們將分步驟進行探討,以便讀者更好地理解。 一、變量類型 在介紹如何將輸出的值賦值給L…

    編程 2025-04-28
  • Python中賦值運算符和相等運算符解析

    Python是一種高級編程語言,它通常被用於開發 Web 應用程序、人工智能、數據分析和科學計算。在Python中,賦值運算符和相等運算符是非常常見和基本的運算符,它們也是進行編程…

    編程 2025-04-28
  • Python中賦值種類

    本篇文章將從多個方面對Python中賦值種類做詳細的闡述,包括普通賦值、序列解包賦值、鏈式賦值、增量賦值和全局賦值。 一、普通賦值 普通賦值是Python中最基礎的賦值操作,通過等…

    編程 2025-04-28
  • Python同步賦值語句的使用方法和注意事項

    Python同步賦值語句是Python中用來同時為多個變量賦值的一種方法。通過這種方式,可以很方便地同時為多個變量賦值,從而提高代碼的可讀性和編寫效率。下面從多個方面詳細介紹Pyt…

    編程 2025-04-28
  • Python用input賦值用法介紹

    本文將從多個方面詳細闡述Python中如何使用input函數來賦值,以幫助讀者更好的理解和應用該函數。 一、基礎使用 1、input函數的作用是從鍵盤輸入一行文本,並返回一個字符串…

    編程 2025-04-27
  • Python二維字典賦值

    Python中的字典是一種非常有用的數據結構,它允許開發人員將鍵值對存儲在一起以便於訪問和操作。除了普通的字典,Python還允許創建二維字典,它們是由鍵值對組成的鍵值對。這些二維…

    編程 2025-04-27
  • Python元組賦值給變量

    本文將詳細闡述Python中元組賦值給變量的多個方面,包括元組的基本操作、元組賦值、交換變量、可變和不可變元組等內容。 一、元組基本操作 元組是Python中的一個重要數據類型,它…

    編程 2025-04-27
  • JWT String Argument Cannot Be Null or Empty

    JWT(JSON Web Token)是一種用於進行身份驗證的標準。在使用JWT時,經常會遇到「JWT String Argument Cannot Be Null or Empt…

    編程 2025-04-27

發表回復

登錄後才能評論