C語言 第十五章 字元與字串常用處理函式

2021-09-27 04:16:05 字數 1961 閱讀 7749

//一,字元處理函式

stdio.h 標頭檔案中宣告的兩個字元處理函式

1,字元輸出函式putchar

prtchar(65);//a

pruchar(『a』);//a

int a = 65;

putchar(a);//a

上面的三種用法,輸出的都是大寫字母a

putchar 一次只能輸出乙個字元,

printf 可以同時輸出多個字元,

printf("%c %c %c",'a','b','c');

2,字元輸入函式getchar

char c;

c = getchar();

getchar會將使用者輸入的字元賦值給變數c

getchar 函式可以讀入空格,tab,直到遇到回車為止。

scanf不能讀入空格,tab

getchar一次只能讀入乙個字元

scanfk可以同時接收多個字元

getchar能讀入回車換行符,這時候要敲2此回車鍵

第一次回車被getchar讀入,

第二次回車代表輸入結束。

//二,字元處理函式

下列字元處理函式都是在string.h 標頭檔案中宣告的

使用前要包含這個標頭檔案。

1,strlen函式 

int size = strlen("mj");

char s1 = "lmj";

int size1 = strlen(s1);

char s2 = ;

int size2 = strlen(s2);

strlen 函式會從s2的首位址開始計算字元個數,

直到遇到空字元 \0 為止。

因為s2的第乙個 \0 之前中有 mj 2個字元,所以長度是2。

2,strcpy函式

char s[10];

strcpy(s,"lmj") ;

strcpy函式會將右邊的"lmj"字串拷貝到字元陣列s中。

從s的首位址開始,逐個字元拷貝,直到拷貝到 \0 為止。

當然,s的尾部肯定會保留乙個 \0.

.假設右邊的字串中有好幾個 \0,

strcpy函式只會拷貝第乙個 \0之前的內容,後面的內容不拷貝。

char s[10];

char c=;

strcpy(s,c;)

最後字串s中的內容為:mj

3,strcat函式

char s1[30] = "love";

strcat(s1,"oc");

strcat函式會將右邊的"oc"字串拼接到s1的尾部,

最後s1的內容變成"loveoc"

4,strcmp函式

這個函式用來比較2個字串的大小

呼叫形式為:strcmp(字串1,字串2)

兩個字串從左到右逐個字元比較(按照字元的ascll碼值的大小),

直到字元不相同或者遇見'\0'為止。

如果全部字元都相同,則返回值0.

如果不同,則返回兩個字串中第乙個不相同的字元ascll碼值的差。

即字串1大於字串2時函式返回值為正,否則為負。

char s1 = "abc";

char s2 = "abc";

char s3 = "abc";

char s4 = "ccb";

printf("%d,%d,%d",strcmp(s1,s2),strcmp(s1,s3),strcmp(s1,s4));

s1,s2相同,返回0,

s1,s3第二個字元不相同,

b的ascll碼值是98,

b的ascll碼值是66,

b-b=32,所以返回值是32。

s1,s4是第乙個字元就不相同,

a的ascll碼值是97,

c的ascll碼值是99,

a-c=-2,所以返回值是-2.

程式設計珠璣 第十五章 字串(二)

給定乙個文字作為輸入,找出其中最長的重複字串 1 檢視所有字串,並依次進行比較 for i 1,n for j i,if thielen comlen c i c j maxlen maxlen thielen maxi i maxj j 思路十分簡單,不過由於查詢所有字串對,因此時間最少為n n的...

C 程式語言 第十五章 類層次結構

1 多重繼承 過載解析的使用不會跨越不同類的作用域。使用宣告可以將不同類中的函式引入到乙個公共的作用域。在乙個類定義裡的使用宣告所引用的必須是基類的成員。在任何派生類中的virtual基類總用同乙個 共享 物件表示。虛基類的建構函式將在其派生類的建構函式之前呼叫。多重繼承能使兄弟類之間共享資訊。在覆...

第十五周OJ 字串插入

問題描述 將字串t插入到字串s中,在位置pos後插入。不得使用字串操作函式,輸出組合成的字串。檔名稱 the fifteenth week oj2274 輸入 輸入兩個字串 t和s 和要插入的位置 pos 輸出 輸出組合後的字串 includeint main char t 100 s 100 r ...