C++处理字符串的方法——字符串类与字符串变量
2016-08-13 21:37
363 查看
一、字符数组
C语言中可以设置一个二维数组,例如str[3][30],大小为3x30,即有3行30列,每一行可以容纳30个字符,可以把str[0],str[1],str[2]看做三个一维字符数组,它们各自有30个元素。
例如:有三个字符串,要求找出其中最大者(要求用函数调用)
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类元素
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类元素
相关文章推荐
- C++处理字符串的方法——字符串类与字符串变量
- C++处理字符串的方法—字符串类与字符串变量
- C++处理字符串的方法—字符串类与字符串变量
- C++处理字符串的方法—字符串类与字符串变量
- C++处理字符串的方法--字符串类与字符串变量
- 批处理变量—截取字符串方法
- c 字符串处理函数,字符串类和字符串变量
- 其他文本处理命令以及bash变量中的一些字符串的处理方法
- linux shell script 脚本 变量中常用的字符串处理方法
- 化解字符串不能超过8000的方法及交叉表的处理
- sql中 字符串 时间 常用处理方法
- C#中字符串处理的一些自定义方法
- C#中字符串处理的一些自定义方法
- 化解字符串不能超过8000的方法及交叉表的处理
- QT4 在字符串中查找EMAIL地址(转贴增加一个处理方法)
- Java中把String变量里的数值型字符串转换成数值型的方法
- C#中字符串处理的一些自定义方法
- [转贴]字符串数组的一些处理方法总结
- 化解字符串不能超过8000的方法及交叉表的处理
- [调查]如果你是个讲求编码规范的程序员,而碰到给变量、方法随意命名,注释又混乱的同事时你会怎么处理???