1. 程式人生 > >string類常用操作

string類常用操作

函式find_first_of()find_last_of() 執行簡單的模式匹配,如在字串中查詢單個字元c。函式find_first_of() 查詢在字串中第1個出現的字元c,而函式find_last_of()查詢最後一個出現的c。匹配的位置是返回值。如果沒有匹配發生,則函式返回-1.

int find_first_of(char c, int start = 0):
查詢字串中第1個出現的c,由位置start開始。 如果有匹配,則返回匹配位置;否則,返回-1.預設情況下,start0,函式搜尋整個字串。

int find_last_of(char c):
查詢字串中最後一個出現的c。有匹配,則返回匹配位置;否則返回-1.
該搜尋在字元末尾查詢匹配,所以沒有提供起始位置。示例:
string str = "Mississippi";
int index;
// 's '
index 2356處出現
index = str.find_first_of('s',0); // index
2
index = str.find_first_of('s',4); // index
5
index = str.find_first_of('s',7); // index
-1

// ‘s’
的最後出現在 index= 6
index = str.find_last_of('s');
// while
迴圈輸出每個'i'index
while((index = str.find_first_of('i', index))!= -1)
{
cout << "index" << index << " ";
index++; // restart search at next indx
}

輸出結果: index 1 index 4 index 7 index 10

2.
字串中提取連續字元序列,既子串。這個操作假定位置 start 和 字元數 count.

string substr(int start=0,int count= -1);
從起始位置開始複製字串中的count 個字元,並返回這些字元作為子串。如果字串尾部小於count字元或者count-1,則字串尾停止複製。如果不使用引數呼叫只包括位置start,則substr()返回從位置開始到字串尾部的子串。

find()
函式在字串中查詢指定模式。該函式將字串s和位置start作為引數,並查詢s的匹配作為子串。

int find(const string& s,int start = 0):
該搜尋獲得字串s和位置start,並查詢s的匹配作為子串。如果有匹配,則返回匹配的位置;否則返回-1。                                                           預設情況下,start0,函式搜尋整個字串。示例:
string fullname = "Mark Tompkin", firstname, lastname;
int index;

index = str.find_last_of(' '); // index is 4
// firstname = "Mark" lastname = "Tompkin"
firstname = fullname.sub string(0,index);
lastname = fullname.substring(index+1);

index = fullname.find("kin"); //
index = 9 匹配 "Kin"
index = fullname.find("omp",0); //
index = 6 匹配 "omp"
index = fullname.find("omp",7); // index is -1 (
無匹配)

3.
新增和刪除字串字元連線(++=)是在字串尾新增字串。insert()函式擴充套件了這個能力,允許在任意位置新增字串。為了從字串。為了從字串中刪除字串,函式erase()可以從指定的位置開始刪除字元。

void insert(int statr,const string& s):
將子串s放入字串中,起始於位置start。插入操作增加了原始字串的長度。

void erase(int start=0,int count=-1):
start開始,從字串中刪除count個字元。如果現有的字串少於count個字元,或者count-1,則刪除到字串尾部的所有字元。預設情況下,start0,函式從字串是起始位置開始刪除字串。預設情況下,函式也刪除到字串尾。需要注意的是,不使用引數呼叫erase()函式時,將把字串截斷為長度為0的空字串。示例:
string str = "endfile";
string s = "string object type";
str += " mark";
str.inset(3, "-of-"); // str
"end-of-file mark"
s.erase(7,7); // s
"string type"
//
index3處刪除4個字元
s.erase(3,4);
cout << s; //
輸出:"strtype"

4.c_str()
返回c語言風格字串的地址。將字串物件轉換為c語言風格字串。
char *c_str();
返回一個等價於字串物件的c語言風格字串的地址。返回型別char*表示c語言風格字串第1個字元的地址。示例:
string filename = "input.dat";
// open
要求檔名是c語言風格的字串
fin.open(filename.c_str());

5.
分離字串路徑的方法處理檔案的程式可能要分析檔名。這種演算法要進行字串處理。檔案可以由路徑名指定,路徑名包括由分隔符"\"分割的名稱集。最後一個"\"前的名稱序列稱為路徑。最後一個名稱是檔名,還可能包括副檔名。路徑名 \class\programs\testfile.cpp
路徑 \class\programs\
檔名 testfile.cpp
副檔名 cpp

為了分析檔名,我們從鍵盤讀入完整的路徑名,並輸出路徑和檔名。如果檔名具有副檔名"cpp",則在建立可執行檔名時,將用"exe"替代副檔名"cpp".下面是程式結構的輪廓,以及如何使用字串函式的說明:

1.
輸入檔名,使用函式find_last_of()在字串中搜索最後一個出現的"\"。這個字元確定了路徑的結尾和檔名的開始。
2
。路徑是由最後一個"\"前所有字串組成的子串。檔名是最後一個"\"後的所有字元。使用最後一個"\"的位置和substr()提取出路徑和檔名。
3.
副檔名是檔名中最好一個"."後的字串。呼叫find_last_of()搜尋最後一個匹配,則複製檔名,刪除當前副檔名,並新增新的副檔名"exe"。 輸出產生的可執行檔名。

//
檔案prg1_3.cpp
//
此程式提示使用者輸入檔案的路徑
//
它使用string類操作來識別並輸出
//
路徑名和檔名。如果檔名有
//
副檔名"cpp",則建立並輸出
//
可執行檔案的名稱,其副檔名為"exe",替換
//
副檔名"cpp"

// WJ.cpp :
定義控制檯應用程式的入口點。
//
i nclude "stdafx.h"
i nclude<iostream>
i nclude<string>

相關推薦

string常用操作

函式find_first_of()和 find_last_of() 執行簡單的模式匹配,如在字串中查詢單個字元c。函式find_first_of() 查詢在字串中第1個出現的字元c,而函式find_last_of()查詢最後一個出現的c。匹配的位置是返回值。如果沒有匹配發生,則函式返回-1.int find_

java String常用操作

1.String物件內容的比較 Str1.equals(Str2) Str1.equalsIgnoreCase(Str2) == 比較的是引用,而equals()比較的是內容 2.String型別與其他型別的相互轉換 a.String轉int int myInt = In

String操作的過載實現及String常用成員函式

文章目錄 1,string 類操作的過載實現 2,String類提供的其他常用成員函式 1,string 類操作的過載實現 /* string 類操作的過載實現 */ class CMyStrin

String和StringBuffer常用操作

String類是字串常量,是不可更改的常量。而StringBuffer是字串變數,它的物件是可以擴充和修改的。StringBuffer在進行字串處理時,不生成新的物件,在記憶體使用上要優於String類。所以在實際使用時,如果經常需要對一個字串進行修改,例如插入、刪除等操

C++string常用操作函式

#include <iostream> #include <string>//必須包含該C++標頭檔案 using namespace std; int main() { //string物件的初始化,也就是建構函式與解構函式

java中String常用方法、屬性等

col clas equal ack length ++ ava eal rgs package Head18; public class java09 { public static void main(String[] args) { St

Java面向對象-- String 常用方法及基本使用

for str news http clas substr 實例 div print 首先來學習基本使用Jdk api chm文檔: 點擊 左上角-顯示: 1, char chartAt(int index) 返回指定索引處的char值 這裏的index 是從0

Java面向物件-- String 常用方法及基本使用

首先來學習基本使用Jdk api chm文件: 點選 左上角-顯示:     1, char chartAt(int index) 返回指定索引處的char值 這裡的index 是從0開始的; package com.xuyigang1234.chp02.strin

Java學習——String常用方法

學習視訊地址:https://www.imooc.com/learn/110   1.常用函式 例項: 執行結果:   2.==於eqauls()的區別 ==: 判斷兩個字串在記憶體中首地址是否相同,即判斷是否是同一個字串物件 e

菜雞的Java課筆記 第十四 String 常用方法

/*String 類常用方法    將所有String類的常用方法全部記下來,包括方法名稱,引數作用以及型別    一個成熟的程式語言,除了它的語法非常完善之外,那麼也需要提供有大量的開發類庫    而需要知道的java

String操作的方法-am

1:字元和字串之間的方法 ps:系統方法的實現的部分,不要求記住(當然具體的實現的演算法可以檢視原始碼) 對於一個系統提供的方法我們需要關注的是,我們使用它幹什麼,輸入什麼(引數列表),名字是什麼(呼叫方法的名),返回值是什麼(處理的結果)。 //首先是將字元轉換為字串 pu

Java基礎-----String常用方法

String類的判斷功能 1、boolean equals(Object obj):比較字串的內容是否相同,區分大小寫。 2、boolean equalsIgnoreCase(String str):比較字串的內容是否相同,忽略大小寫。 3、boolean contains(

C++ string常用的函式

 字串是一種線性表,有著廣泛的應用,比如:文字編輯 、 情報檢索 、 拼寫檢查 、 網際網路搜尋引擎和自然語言翻譯等。 string append(const char *s);              &n

java:String常用的一些方法

1、獲取長度: String str = "i am a student.";   int str1=str.length(); 2、輸入下標,返回字元 String str = "i am a student.";//主串 char c = str.char

Java String常用方法

Java String類常用方法 1.字串物件操作 2.字串物件修改 1.字串物件操作 方法 public int length():返回當前字串的長度 public char charAt(int

String常用方法總結

連結:https://www.cnblogs.com/ABook/p/5527341.html https://blog.csdn.net/tomcmd/article/details/54881857

Java String常用的函式及用法

一、字串轉化為字元陣列  toCharArray() 程式碼:char[] a=string.toCharArray(); 二、將字串轉化為數字 1,轉化為整數 int a=Integer.valueOf(string); 2,轉化成實數 double a=Do

Java中String常用方法(轉)

轉自:https://blog.csdn.net/kaishizhangcheng/article/details/52332543int indexOf(String str)該方法用於返回當給定字串在當前字串中的位置,若當前字串不包含給定字串則返回-1。過載的方法int

String常用方法(補充)

一.String類的方法 1.替換功能: 1).public String replace(char oldChar,char newChar):將字串中某一個字元用新的字元替換 2).public

如何替換指定位置的字串(另附String常用方法)

如何替換指定位置的字串: 這裡給出字串的兩個位置,pos1和pos2, 如何替換pos1和pos2之間的字串 答:用subString , String.substring(0,pos1)+newString+String.substring(pos2+1) 另附ja