设为首页 加入收藏

TOP

C++中的字符串类(一)
2019-05-23 14:32:02 】 浏览:106
Tags:字符串

1,本文分析 C++ 中的字符串,C 语言中的字符串利用的是 C 语言中的字符数组,  在 C 语言中没有真正意义上的字符串,利用了字符数组表示了字符串,最初设  计 C 语言仅仅是为了开发 Unix 操作系统,而开发操作系统要处理的仅仅是数  据本身,关于字符串的处理很少,所以说当时没有在 C 语言中内置一个字符串   现在绝大多数都是在用 C 语言开发应用程序,而开发应用程序中对字符串的处 理是非常多的,如果还是用字符数组表达字符串,一定会使得开发效率大大下  降,因此在 C++ 中有必要引入字符串的概念,不仅仅是用字符数组来模拟,而  是真正意义上的字符串;

 

2,历史遗留问题:

    1,C 语言不支持真正意义上的字符串;

       1,C++ 也不支持;

    2,C 语言用字符数组和一组函数实现字符串操作;

       1,C++ 同样支持;

    3,C 语言不支持自定义类型,因此无法获得字符串类型;

       1,C++ 支持自定义类型,因此可以获得字符串类型;

   

3,解决方案:

    1,从 C 到 C++ 的进化过程引入了自定义类型;

    2,在 C++ 中可以通过类完成字符串类型的定义;

   

4,C++ 中的原生类型系统是否包含字符串类型?

    1,不包含;

 

5,标准库中的字符串类:

    1,C++ 语言直接支持 C 语言的所有概念;

    2,C++ 语言中没有原生的字符串类型;

    3,C++ 标准库提供了 string 类型:

       1,string 直接支持字符串连接;

           1,重载 “+”;

       2,string 直接支持字符串的大小比较;

           1,重载大小操作符,可以对字符串进行排序;

       3,string 直接支持子串查找和提取;

       4,string 直接支持字符串的插入和替换;

       5,查阅 C++ 标准库文档;

      

6,字符串类的使用编程实验:

    1,main.cpp 文件:

 1 #include <iostream>
 2 #include <string>
 3 
 4 using namespace std;
 5 
 6 void string_sort(string a[], int len)
 7 {
 8     for(int i=0; i<len; i++)
 9     {
10         for(int j=i; j<len; j++)
11         {
12             if( a[i] > a[j] )  // string 类重载了 “>”;
13             {
14                 swap(a[i], a[j]);
15             }
16         }
17     }
18 }
19 
20 string string_add(string a[], int len)
21 {
22     string ret = "";
23     
24     for(int i=0; i<len; i++)
25     {
26         ret += a[i] + "; ";  // string 类重载了 “+=” 和 “+”;
27     }
28     
29     return ret;
30 }
31 
32 int main()
33 {
34     string sa[7] = 
35     {
36         "Hello World",
37         "D.T.Software",
38         "C#",
39         "Java",
40         "C++",
41         "Python",
42         "TypeScript"
43     };
44     
45     string_sort(sa, 7);
46     
47     for(int i=0; i<7; i++)
48     {
49         cout << sa[i] << endl;
50     }
51     
52     cout << endl;
53     
54     cout << string_add(sa, 7) << endl;
55     
56     return 0;
57 }

    2,输出结果:

1 C#
2 C++
3 D.T.Software
4 Hello World
5 Java
6 Python
7 TypeScript
8 
9 C#; C++; D.T.Software; Hello World; Java; Python; TypeScript;

    3,C++ 中没有必要使用字符数组模拟字符串了,直接使用标准库中的 string   类型;

   

7,标准库中的字符串类:

    1,字符串与数字的转换:

       1,标准库中提供了相关的类对字符串和数字进行转换;

           1,基于字符串流类 sstream 来进行转换;

           2,sstream 类诞生的目的就是为了支持字符串和数字之间的相互转换;

       2,字符串流类(sstream)用于 string 的转换:

           1,<sstream> - 相关头文件;

        &

首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇C++类中的函数重载 下一篇C++中的析构顺序和cosnt对象

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目