详解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/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

发表回复

登录后才能评论