字串常量
定義字串常量是用一對雙引號括起來的字串行,例如「this is a string」
,"hello,world"
都是字串常量。由於雙引號是字串的限界符,所以字串中間的雙引號就需要用轉義字元來表示。例如"please enter \"yes \ " or \"no\""
就表示please enter"yes" or "no"
存放
字串常量在記憶體中的存放形式是,按串中字元的排列次序順序存放,每個字元佔乙個位元組,並在末尾新增'\0'
作為結尾標記。這實際上是乙個隱含建立的型別為char的陣列,乙個字串常量就表示這樣乙個陣列的首位址。因此,可以把字串常量賦值給字串指標,由於常量是不能改的,應將字串常量賦給指向常量的指標,此時可以直接輸出。
const
char
* string1=
"this is a string."
;cout<
字串變數
字串變數也可以用類似的方式來表示。如果建立乙個char陣列,每個元素存放字串的乙個字元,在末尾放置乙個'\0'
,便構成了c++字串。它的儲存方式和字串常量一致,也是順序存放,每個字元佔乙個位元組。但是,用於存放字串的陣列的元素個數不能小於字串的長度,即字串陣列的長度最小等於字元個數+1
初始化字元陣列初始化,可以是以逗號隔開的ascii碼(這時候需要有』\0』)或者字元常量,也可以是整體的字串常量(這時候末尾的』\0』是隱含的)。下面列出的語句都可以建立乙個初值為"hello,world"的字串常量,3種寫法是等價的。
初始化列表
指定字元陣列長度
未指定字元陣列長度
char str[12]
=;char str1[12]
="hello,world"
;char str2=
"hello,world"
;
三者的列印
const
char
* s1=str;
const
char
* s2=str1;
const
char
* s3=str2;
cout<
cout<
cout<
記憶體中hello,world陣列儲存如下
陣列下標01
2345
6789
1011內容h
ello
,wor
ld\0c語言字串處理函式
補充string.h
標頭檔案下常用的字串處理函式
函式名功能
char *strcat( char *str1, const char *str2 );
函式將字串str2 連線到str1的末端,並返回指標str1
char *strchr( const char *str, int ch );
函式返回乙個指向str 中ch 首次出現的位置,當沒有在str 中找ch到返回null。
int strcmp( const char *str1, const char *str2 );
比較字串str1 and str2返回值如下less than 0 :str1 is less than str2 ; equal to 0 :str1 is equal to str2 ;greater than 0 :str1 is greater than str2
char *strcpy( char *to, const char *from );
複製字串from 中的字元到字串to,包括空值結束符。返回值為指標to。
成員函式
常用成員函式功能簡介
成員函式
功能將字串s新增到本串尾
string assign (const char *s);
賦值,將s所指向的字串賦值給本物件
int compare(const string & str) const;
比較本串與str中串的大小,當本串<str串時,返回負數;當本串>str串時,返回正數;兩串相等時,返回0
string & insert(unsigned int p0,const char* s);
將s所指向的字串插入在本串中位置p0之前
string substr(unsigned int pos,unsigned int n) const;
取子串,取本串中位置pos開始的n個字元,構成新的string類物件作為返回值
unsigned int find(const basic_string &str) const;
查詢並返回str在本串中第一次出現的位置
unsigned int length() const;
返回串的長度(字元個數)
void swap(string & str);
將本串與str串中的字串進行交換
下面是string類的一段測試**
#include
#include
using
namespace std;
//根據value的值輸出true或false,title為提示文字
inline
void
test
(const
char
* title,
bool value)
intmain()
測試結果如下
s1 is defplease enter s2:azheng
length of s2: 6
s1<="abc"returns: false
「def」<=s1returns: true
s2=s2+s1:azhengdef
length of s2:9
C 字串處理
private static regex regnumber new regex 0 9 private static regex regnumbersign new regex 0 9 private static regex regdecimal new regex 0 9 0 9 privat...
C 字串處理
string字串是char的集合,而char是unicode的 所以char可以轉化為int。字串在引數傳遞時為引用傳遞 可以使用空字串 一 字串型別轉換 1.轉為char 可以用索引器來得到字串中指定的字元,如 string mystring hello char mychars mychars ...
C 字串處理
void memccpy void dest,const void src,int c,size t n 從src所指向的物件複製n個字元到dest所指向的物件中。如果複製過程中遇到了字元c則停止複製,返回指標指向dest中字元c的下乙個位置 否則返回null。void memcpy void de...