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

一、字符数组 
C语言中可以设置一个二维数组,例如str[3][30],大小为3x30,即有3行30列,每一行可以容纳30个字符,可以把str[0],str[1],str[2]看做三个一维字符数组,它们各自有30个元素。 
例如:有三个字符串,要求找出其中最大者(要求用函数调用)

<code class="hljs cpp has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#include <iostream></span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#include <string></span>
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">using</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">namespace</span> <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">std</span>;
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">int</span> main()
{
    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">void</span> max_string(<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">char</span> str [][<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">30</span>],<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">int</span> i);
    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">int</span> i;
    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">char</span> c_name[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">3</span>][<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">30</span>];
    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">for</span> ( i = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>; i < <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">3</span>; i++ )
        <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">cin</span>>>c_name[i];
    max_String(c_name,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">3</span>);
    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">return</span> <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>;
}

<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">void</span> max_string( <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">char</span> str[][<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">30</span>],<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">int</span> n )
{
    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">int</span> i;
    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">char</span> <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">string</span>[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">30</span>];
    <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">strcpy</span>(<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">string</span>,str[<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>]);
    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">for</span> ( i = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>; i < <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">3</span>; i ++ )
        <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">if</span>( <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">strcmp</span>(str[i],<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">string</span>) > <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span> )
            <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">strcpy</span>( <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">string</span>,str[i] );
    <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">cout</span> << endl<<<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"the large string is"</span><<<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">string</span><<endl;
}</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li><li style="box-sizing: border-box; padding: 0px 5px;">23</li><li style="box-sizing: border-box; padding: 0px 5px;">24</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li><li style="box-sizing: border-box; padding: 0px 5px;">23</li><li style="box-sizing: border-box; padding: 0px 5px;">24</li></ul>

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类元素

猜你喜欢

转载自blog.csdn.net/hnzziafyz/article/details/52201823
今日推荐