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

一、字符数组
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类元素

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值