c++编程问题,string类型怎么赋值,怎么引用
2017-05-05
要想使用标准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++里的难点,多练多思考吧。
#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;
#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;
}