C C字串

2022-06-18 07:15:09 字數 2017 閱讀 5679

c字串是一個字元陣列,以'\0'(空終結符)結尾。可以使用c++庫中的c字串函式操作c字串。

//

初始化c字串

char city = "

beijing";

//求陣列長度

cout << sizeof(city)/sizeof(city[0

]);//

結果為:8

結果解釋:beijing是7個字元,外加一個空終結符'\0'c字串和一般的字元陣列的區別就在於:c字串的最後一個字元一定是'\0',而一般的字元陣列可以以任何字元結尾。看下面的例子

//

是一個c字串,有8個字元

char city1 = "

beijing";

//不是c字串,是一個普通的字元陣列,有7個字元

char city2 =

#include using

namespace

std;

intmain()

執行結果:

如果輸入的城市裡面有空格(new york),可以使用cin.getline()函式

#include using

namespace

std;

intmain()

執行結果:

注:1) 下面的函式都定義在標頭檔案下(除轉換函式atoi, atof, atol定義在標頭檔案下)

2)size_t是一個c++型別,一般與unsigned int相同

函式描述

size_t strlen(char s)

返回字串長度,即在空終結符之前的個數

strcpy(char s1, const char s2)

把字串s2複製到s1中

strncpy(char s1, const char s2, size_t n)

把字串s2的前n個字元複製到s1中

strcat(char s1, const char s2)

把字串s2拼接到s1中

strncat(char s1, const char s2, size_t n)

把字串s2的前n個字元拼接到s1中

int strcmp(char s1, const char s2)

判斷s1小於、等於或大於s2,分別返回小於0、等於0、大於0的數

int strncmp(char s1, const char s2, size_t n)

只比較s1與s2的前n個字元

int atoi(char s)

返回字串對應的int型值

double atof(char s)

返回字串對應的double型值

long atol(char s)

返回字串對應的long型值

void itoa(int value, char s, int radix)

基於一個指定的集數,獲得字串的整數值(可用於進位制轉換)

主要說明一下後面的幾個轉換函式:

#include #include 

using

namespace

std;

intmain()

#include #include 

using

namespace

std;

intmain()

執行結果:

C 的字符集設定

今天在使用vs2010 mfc時候,使用 lpwstr 發生報錯。 其解決方案就是 在專案屬性 常規 專案預設值 字符集裡面,將使用unicode字符集換為 使用多位元組字符集就ok了。 原因 typedef lpctstr lptstr ifndef unicode typedef tchar ch...

C code 剩餘串排列

方法一 一種直觀的解是,先對第一個字串排序,然後逐個字元在第二個字串中搜尋,把搜尋不到的字元輸出,就是所要的結果。 然而,演算法庫中有一個集合差運算set difference,而且要求兩個集合容器是已經排好序的。乍一看,好像是針對集合差運算來的。 1 include2 include3 includ...

C 資料結構之串

串 string 是n n 0 個字元組成的有限序列。 由於串中的字元都是連續儲存的,在c 中有恆定不變的特性。一經建立就保持不變。 為了區...