13 C++字串 字串與數值轉換函數 13.1 C++字串類別 建立C++字串 13-2

Slides:



Advertisements
Similar presentations
第一單元 建立java 程式.
Advertisements

計算機程式語言實習課.
第 2 章 初探 C++.
第4章 数组 数组是由一定数目的同类元素顺序排列而成的结构类型数据 一个数组在内存占有一片连续的存储区域 数组名是存储空间的首地址
File Access 井民全製作.
第八章 类和对象.
C++程序设计 王希 图书馆三楼办公室.
Visual C++ introduction
簡易C++除錯技巧 長庚大學機械系
資料大樓 --談指標與陣列 綠園.
函數(一) 自訂函數、遞迴函數 綠園.
2 C++ 程式概論 2.1 C++ 程式結構 程式註解 // 插入標題檔 #include 2-3
教材 《C++程序设计》.谭浩强. 清华大学出版社 王雪晶
String C語言-字串.
C++语言程序设计 C++语言程序设计 第六章 指针和引用 第十一组 C++语言程序设计.
第一章 程序的基本结构. 第一章 程序的基本结构 教材及授课结构 本章目标 基本内容 扩展阅读 上机指导 应用举例 习题.
Java程式概觀.
C++语言程序设计 C++语言程序设计 第四章 数组及自定义数据类型 C++语言程序设计.
C語言簡介 日期 : 2018/12/2.
Object-Oriented Programming in C++ 第一章 C++的初步知识
類別(class) 類別class與物件object.
第一章 C++编程简介 丘志杰 电子科技大学 计算机学院 软件学院.
计算机网络讲义 第5章 批量数据处理—数组 一维数组 排序和查找 二维数组 字符串.
Ch10 字元與字串 物件導向程式設計(II).
C++程序设计 string(字符串类) vector(容器类).
Java 程式設計 講師:FrankLin.
JAVA 程式設計與資料結構 第四章 陣列、字串與數學物件.
程序的三种基本结构 if条件分支语句 switch多路开关语句 循环语句 循环嵌套 break,continue和goto语句
谭浩强 编著 中国高等院校计算机基础教育课程体系规划教材 C++程序设计.
C++语言程序设计 第十一章 流类库与输入/输出.
C++语言程序设计 C++语言程序设计 第六章 指针和引用 第十一组 C++语言程序设计.
切換Dev c++顯示語言 工具->環境選項(V)->介面->language (Chinese TW)
程式設計實習課(四) ----C 函數運用----
第一單元 建立java 程式.
選擇性結構 if-else… switch-case 重複性結構 while… do-while… for…
C++ 程式設計 基礎篇 張啟中 Chang Chi-Chung.
Name1..hour //加班時數 name2..hour //請假時數
第二章 基本数据类型及运算 C数据类型概述 基本数据类型 运算符和表达式 混合运算与类型转换 数据的输入输出 顺序程序设计举例.
JAVA 程式設計 資訊管理系 - 網路組.
輸入&輸出 函數 P20~P21.
第九章 字串.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第三章 控制语句 第十一组 C++语言程序设计.
挑戰C++程式語言 ──第8章 進一步談字元與字串
物件導向程式設計 CH2.
認識常數與變數 學習C++所提供的各種基本資料型態 瞭解溢位的發生 學習認識資料型態之間的轉換
第11章 從C到C++語言 11-1 C++語言的基礎 11-2 C++語言的資料型態與運算子 11-3 C++語言的輸出與輸入
<编程达人入门课程> 本节内容 字符与字符串 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群: ,
C++语言程序设计 C++语言程序设计 第二章 基本数据类型与表达式 第十一组 C++语言程序设计.
C++程式設計入門 變數與運算子 作者:黃建庭.
C++大学基础教程 第10章 运算符重载 北京科技大学 2019/5/7 北京科技大学.
挑戰C++程式語言 ──第7章 輸入與輸出.
C/C++基礎程式設計班 C++: 物件的使用、參考、重載函式 講師:林業峻 CSIE, NTU 3/28, 2015.
10115: Automatic Editing ★★☆☆☆
字 串 9 子曰:「質勝文則野,文勝質則史。 文質彬彬,然後君子。」 《論語﹒雍也第六》
選擇性結構 if-else… switch-case 重複性結構 while… do-while… for…
變數與資料型態  綠園.
C++语言程序设计 C++语言程序设计 第十章 多态 第十一组 C++语言程序设计.
1757: Secret Chamber at Mount Rushmore
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
C++程序设计 概述 潘荣江 山东大学软件学院.
第四章 陣列、指標與參考 4-1 物件陣列 4-2 使用物件指標 4-3 this指標 4-4 new 與 delete
Oop7 字串 String.
Programming & Language Telling the computer what to do
C++语言程序设计 C++语言程序设计 第十一章 异常处理 C++语言程序设计.
String類別 在C語言中提供兩種支援字串的方式 可以使用傳統以null結尾的字元陣列 使用string類別
變數與資料型態  綠園.
資料!你家住哪裏? --談指標 綠園.
InputStreamReader Console Scanner
C++语言程序设计 C++语言程序设计 第二章 基本数据类型与表达式 第十一组 C++语言程序设计.
Presentation transcript:

13 C++字串 字串與數值轉換函數 13.1 C++字串類別 13-2 13.1.1 建立C++字串 13-2

字串與數值轉換函數 字串形式的數值(“3.141513”)是不能當做算數運算的資料,所以C++ 提供字串與數值間的轉換函數,例如字串轉成浮點數(atof)、字串轉成整數(atoi)、字串轉成長整數(atol)等函數,以及整數轉成字串(itoa)的函數。

轉成浮點數值atof #include <cstdlib> atof (字串) 範例 s = "-113138.12E-25 "; //定義字串 x = atof( s ); //轉浮點數x=-1.1313812e-22

轉成整數值atoi #include <cstdlib> atoi (字串) 範例 s = " 686 pigs "; //定義字串 i = atoi( s ); //轉換成短整數,i=686

轉成長整數值atol #include <cstdlib> atol (字串) 範例 s = " 138686 dollars"; //定義字串 l = atol( s ); //轉換成長整數,l=138686

整數轉成字串itoa #include <cstdlib> itoa (數值, 字串, 基底) 範例 char intArray[10]; itoa(1234, intArray, 8); //1234轉成字串"2322" itoa(1234, intArray, 10); //1234轉成字串"1234" itoa(1234, intArray, 16); //1234轉成字串"4d2"

13.4 C++字串類別 C++ 字串類別是一個抽象的資料型態,它不是C++ 原本內建的資料型態,如int或char。C++ 字串類別與字串類別函數是定義於C++ 的新型標題檔(不含 .h的標題檔)中,而C型態的字串標題檔(string.h)並沒有定義這些函數。所以使用這些函數以前,必須插入C++ 新型的標題檔(string)。 在插入C++ 新型標題檔後(例如:#include <iostream>),必須加入(using namespace std;)敘述,來宣告程式中的函數是使用新型的C++ 型態標題檔,而不是使用舊型的C型態標題檔。

13.4.1 建立C++字串 #include <string> using namespace std;

13.4.1 建立C++字串 (續) 範例:C 型態字串 char *name = "JOHN"; string s1; //宣告s1 string s2("JOHN ARCHER"); //s2 = "JOHN ARCHER" string s3 = "MARY ARCHER"; //s3 = "MARY ARCHER" string s4("A", 4); //宣告s4 = "AAAA" string s5(s2); //宣告s5 = "JOHN ARCHER" string s6(s2, 0, 4); //宣告s6 = "JOHN"

13.4.2 輸入C++字串 #include <iostream> using namespace std; getline (cin, 字串物件) 範例 string s; getline(cin, s); //假設輸入"Hello world!" cout << s; //輸出Hello world!

13.4.3 C++字串運算符號 運算符號 功能說明 = 指定資料 + 串接字串 += 連接並指定字串 == 相等 != 不等 < 小於 <= 小於等於 > 大於 >= 大於等於 [] 註標 << 輸出 >> 輸入

13.4.3 C++字串運算符號 (續) 指定資料 範例 string s1, s2("Hello"); s1 = s2; //s1="Hello" s1 = "Hello world!"; //s1="Hello world!"

13.4.3 C++字串運算符號 (續) 串接字串 範例 string s1("Hello"), s2(" world"), s3; s3 = s1 + s2; //s3="Hello world" string s4(s3 + "!"); //s4="Hello world!" s1 += "!"; //s1="Hello!"

13.4.3 C++字串運算符號 (續) 比較字串 範例 string s1("ANSI/ISO C++"), s2("Visual C++"); if(s1 == s2) cout << "s1 == s2"; else cout << "s1 != s2";

13.4.4 C++ 字串陣列 #include <string> using namespace std; 範例 string s1[] = {"Java", "Assembly", "Delpha", "Basic", "Fortran", "Cobol"};

13.4.5 C++字串類別成員 成員函數 功能 s1.append(s2) 連接字串 s1.append(s2, 起始位置, 字串長度) s1.assign(s2) 指定字串 s1.assign(s2, 起始位置, 字串長度) s1.at(位置) 存取指定位置 s1.capacity() 取得字串容量 s1.clear() 清除字串全部內容 s1.compare(s2) 比較字串 s1.compare(s1起點, s1長度, s2, s2起點, s2長度) s1.copy(s2, 起始位置, 字串長度) 複製字串

13.4.5 C++字串類別成員 (續) 成員函數 功能 s1.erase(起始位置, 清除長度) 清除字串部分內容 s1.find(s2) 找尋字串 s1.find(s2, 起始位置) s1.insert(起始位置, s2) 插入字串 s1.length() 取得字串長度 s1.max_size() 取得字串最大長度 s1.replace(起始位置, 字串長度, s2) 取代部分字串 s1.size() 取得字串大小 s1.substr(起始位置, 字串長度) 找尋部分字串 s1.swap(s2) 對調字串

13.4.5 C++字串類別成員 (續) 指定資料 範例一 string s1, s2("Hello world!"); s1.assign(s2); //s1="Hello world!“ 範例二 string s1("Hello world!"), s2; s2.assign(s1, 6, 5); //s2 = "world" s2[2] = 'u'; //s2 = "would"

13.4.5 C++字串類別成員 (續) 串接字串 範例 string s1("Hello"), s2("wi"), s3(" world!"); s1.append(s3); //s1 = "Hello world!" s2.append(s3, 4, 2); //s2 = "wild"

13.4.5 C++字串類別成員 (續) 比較字串 範例 string s1("ANSI/ISO C++"), s2("Visual C++"); cout << s1.compare(13, 3, s2, 7, 3) << endl; //等於0表示相等 cout << s1.compare(0, 8, s2, 0, 8) << endl; //不等於0表示不相等

13.4.5 C++字串類別成員 (續) 取得子字串 範例 string s1("Hello world!"), s2; s2 = s1.substr(6, 5); //s2 = world

13.4.5 C++字串類別成員 (續) 對調字串 範例 string s1("Visual C++"), s2("ANSI/ISO C++"); s1.swap(s2); //s1與s2對調 cout << s1 << endl; //顯示ANSI/ISO C++ cout << s2 << endl; //顯示Visual C++

13.4.5 C++字串類別成員 (續) 找尋字串 範例 string s1("ANSI/ISO C++"), s2("C++"); int p; p = s1.find(s2); // p = 7 (找到再位置7) p = s1.find("Visual"); // p = -1 (找不到)

13.4.5 C++字串類別成員 (續) 取代字串 範例 string s("call by reference"); int p = s.find(" "); while(p < string::npos) // 若不等於字串結尾則繼續 { s.replace(p, 1, "-"); // 找到後以"–"取代" " p = s.find(" ", p++); // 找尋下一個空白 }

13.4.5 C++字串類別成員 (續) 插入字串 範例 string s1("ANSI C++"), s2("ISO"); s1.insert(4, s2); //s1=ANSIISO C++ s1.insert(4, "/"); //s1=ANSI/ISO C++

13.4.5 C++字串類別成員 (續) 其他 範例 string s1("ANSI/ISO C++"); cout << s1.length() << endl; //12 cout << s1.size() << endl; //12 cout << s1.capacity() << endl; //12 cout << s1.max_size() << endl; //421341367281 cout << s1.at(10) << endl; //'C'