您的位置:首页 > 编程语言 > C语言/C++

C++处理字符串的方法——字符串类与字符串变量

2016-02-22 23:38 260 查看
一、字符数组

C语言中可以设置一个二维数组,例如str[3][30],大小为3x30,即有3行30列,每一行可以容纳30个字符,可以把str[0],str[1],str[2]看做三个一维字符数组,它们各自有30个元素。

例如:有三个字符串,要求找出其中最大者(要求用函数调用)

#include <iostream>
#include <string>
using namespace std;
int main()
{
void max_string(char str [][30],int i);
int i;
char c_name[3][30];
for ( i = 0; i < 3; i++ )
cin>>c_name[i];
max_String(c_name,3);
return 0;
}

void max_string( char str[][30],int n )
{
int i;
char string[30];
strcpy(string,str[0]);
for ( i = 0; i < 3; i ++ )
if( strcmp(str[i],string) > 0 )
strcpy( string,str[i] );
cout << endl<<"the large string is"<<string<<endl;
}


c_name是3行30列的字符数组名,它代表二维数组中第一行的首地址,第二个实参的值为3,它是需要处理的字符串个数。

二、字符串类型与字符串变量

1. 字符串类型是C++新提供的一种数据类型——string类

用string定义的变量为字符串变量

实际上string并不是C++具有的基本类型,(char,int..等为基本类型),它是C++标准库中声明的一个字符串类,用这种雷可以定义对象。每一个字符串变量都是string类的一个对象。

2.字符串变量

a、字符串变量的定义与引用

string string1;//定义string1为字符串变量

string string2 = “china”;//定义string2同时对其初始化

注意,要使用string类时,前面必须声明

#include

b、字符串变量的赋值

1. string1 = “china”;

可以直接对字符串变量进行赋值

2.string2 = string1;

可以字符串变量之间相互赋值,且不要求string2与string1长度相同,定义字符串常量时不需要指定长度,字符串变量的长度随着其中字符串的长度的变化而变化。

3. 可以对字符串变量中的某一字符进行赋值

string word = “then”;

word[2]=’a’;

4.字符串变量可以在cin和cout中直接输入输出

5.字符串变量的运算

字符串变量可以不使用strcpy,strcat等函数,可直接用运算符进行运算。

a、字符串复制用赋值号

string2 = string1;

b、字符串连接用加号

string3 = string1 + string2;

c、字符串比较直接用关系运算符

==、>、<、!=、>=、<=

三、字符串数组

string name[5];

并不要求每个字符串元素具有相同的长度。

每一个字符串元素中只包含字符串本身的字符而不包括’\0’

实际上,编译系统为每一个字符串变量分配4个字节,在这个存储单元中,并不直接存放字符串本身,而是存放字符串的地址。

例如:

name[0] = “Zhang”;

则sizeof(name) 和 sizeof(string)的值是不同的,前者为20,后者为4

因为name数组有五个string类元素
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: