c++编程问题,string类型怎么赋值,怎么引用

如题所述

    要想使用标准C++中string类,必须要包含

#include <string>// 注意是<string>,不是<string.h>,带.h的是C语言中的头文件

    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++里的难点,多练多思考吧。

温馨提示:内容为网友见解,仅供参考
第1个回答  2023-03-31
这个是因为String str1=new String("hello"),这样创建的话,"hello"这个字符串只属于str1这个对象拥有,并且只有当程序运行到这句话的时候才去分配空间,而String str2="hello"则不是,它是在编译时就已经确定了,程序启动时已经在内存了,所以大家可以共用。拓展:1、C++、java等编程语言中的字符串。 在java、C#中,String类是不可变的,对String类的任何改变,都是返回一个新的String类对象。 String 对象是 System.Char 对象的有序集合,用于表示字符串。String 对象的值是该有序集合的内容,并且该值是不可变的。2、String类是不可变(final)的,对String类的任何改变,都是返回一个新的String类对象.这样的话把String类的引用传递给一个方法,该方法对String的任何改变,对原引用指向的对象没有任何影响,这一点和基本数据类型相似。//这样操作之后s1是"abc",s2是"def"。a 和 b 是不是指向同一个地址呢,这个问题在各论坛都是谈论很激烈,其实很简单,跟下这些字符串的内存地址就好了。
第2个回答  2023-04-26
直接上例子:
#include<iostream>
#include<string> //使用string类必须包含的头文件
using namespace std;
int main()
{
string str="absddf"; //直接给变量赋值
cout<<str<<endl;
return 0;
}
还有不太明白你的意思,用类名创建数组有何用意,直接创建一个字符数组就可以了。
如下:在上面的程序加上下面语句,在vc++6.0亲测可用。
string a[]={"a","b","c"};
cout<<a[1]<<a[2]<<a[0]<<endl;
第3个回答  2023-04-03
#include<iostream>
#include<string>
using namespace std;
char *name[10] = { "张一", "张二", "张三", "张四", "张五", "王一", "赵一", "孙一", "章子一", "李天一" };

class Score
{
    string name[10], ch, p;
    double score1[10];
    int i, j;
public:
    Score();
    Score(char* name1[], double score2[]);
    void judge();
    void show();
};
Score::Score()
{
    for (i = 0; i<10; i++)
    {
    
        score1[i] = 0;
    }
}

Score::Score(char* name1[], double score2[])
{
    for (i = 0; i<10; i++)
    {
        name[i]=name1[i];
        score1[i] = score2[i];
    }
}

void Score::judge()
{
    double x;
    for (i = 1; i<10; i++)
    for (j = 0; j<10 - i - 1; j++)
    {
        if (name[j]<name[j + 1])
        {
            ch = name[j], name[j] = name[j + 1], name[j + 1] = ch;
            x = score1[j], score1[j] = score1[j + 1], score1[j + 1] = x;
        }
    }

}

void Score::show()
{
    for (i = 0; i<10; i++)
        cout << name[i] << " " << score1[i] << endl;
}
int main()
{
    //string name[10];
    double score1[10];
    int i;
    for (i = 0; i<10; i++)
        cin >> score1[i];
    Score a(name, score1);
    a.judge();
    a.show();

    return 0;
}

c++编程问题,string类型怎么赋值,怎么引用
C++中,string是一个类(注意,不是类型)。它的赋值,直接将字符串等于给它,或将同类的变量赋给它即可。比如:string LSStr,LSStrA; \/\/定义 LSStr = 'aabbccdd'; \/\/赋值 LSStrA = LSStr; \/\/同类赋值 1、不同编译环境下的C++,对字符串的处理稍有差别。2、最原始的C语言中,没有string,...

string字符串赋值?
c++编程问题,string类型怎么赋值,怎么引用1、给字符数组赋值分两种情况,单字符赋值和字符串赋值。2、在C语言中,字符串的赋值主要有两种方法,第一种是通过指针的方式直接赋值,第二种是通过数组直接赋值。指针式赋值。通过程序的运行情况,可以知道:char*p=hello这种字符串的赋值方式是完全没有问题的。3...

c++怎么给一个string赋值
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 << ...

C++ 语言中 String 的常见用法(一)
初始化时,可直接赋值给string类型的变量。string内容的访问 1. 通过下标访问 通常可直接如字符数组般访问string。输入结果为:使用cin和cout读取和输出整个字符串。对于任意字符串输入,输出结果一致。是否可用printf输出string?答案是肯定的,通过c_str()将string转换为字符数组进行输出。输出结果为:2. ...

C++中string怎么用?麻烦大神给个详细的解答!
我们可以用 = 进行赋值操作,== 进行比较,+ 做串联(是不是很简单?)。我们尽可以把它看成是C++的基本数据类型。首先,为了在我们的程序中使用string类型,我们必须包含头文件 <string>。如下: #include <string> \/\/注意这里不是string.h string.h是C字符串头文件1.声明一个C++字符串声明一个字符串变量很简单:...

String类常见用法总结(C++)
2. 赋值: - 重载等号运算符=:支持const char*类型、string类型和char类型赋值。 - assign(elem):接受const char*类型和string类型元素。 - assign(n, c):用n个字符c赋值。 - assign(const char* s, int n):将s字符串的前n个字符赋值。3. 访问: - operator[]:重载...

C++ string类的写法问题
String&& 是 C++11 特性之一,被称作“右值引用”,它只能绑定到“右值”,也就是临时对象或者即将消亡的对象(或者在确信自己在做什么的时候,把对象强制转换成右值),因此可以把 String&& 所引用的对象所拥有的资源直接“拿来”使用,而不用重新分配空间,把 String&& 所引用的对象所拥有的资源复制给...

C++怎样为字符串赋值?
C++为字符串赋值可以参考下面的代码:include <stdio.h> include <string.h> \/\/加个头文件 main(){ char a[20];strcpy(a, "你好");printf("%s\\n",a);} 要用strcpy将字符串常量复制进去,或者用gets(a)从键盘输入字符串

c++ string 怎么用?
1.定义和构造初始化 string 提供了很多构造函数,可以以多种方式来初始化string字符串。2.赋值,拼接字符串 string重载了 = + += 等多种运算符,让字符串组合拼接更简单。3.访问字符操作 string可以按数组方式,以下标来访问。还可以用at()函数访问指定的字符。4.可以使用 STL 的接口 可以把...

c++怎么给字符数组对象赋值(从键盘接受)
第一行是输入.第二行字符是反序输出结果.gets从标准输入设备读字符串函数,其可以无限读取,不会判断上限,以回车结束读取,所以程序员应该确保buffer的空间足够大,以便在执行读操作时不发生溢出。功能 从stdio流中读取字符串,直至接受到换行符或EOF时停止,并将读取的结果存放在buffer指针所指向的字符...

相似回答