C專題 字串函式 結構體 演算法題

2021-10-10 17:29:59 字數 2864 閱讀 4050

二、結構和其他資料形式

結構體初始化

三、演算法題

字串與字串函式都必須在標頭檔案下使用。

gets( )函式:

他讀取整行輸入,直至遇到換行符,然後丟棄換行符,儲存其餘字元,並在這些字元的末尾新增乙個空字元使其成為乙個c字串。

gets( )函式易產生漏洞,不建議使用

fgets( )函式:

fgets函式的第二個引數指明了讀入字元的最大數量。如果該引數的值是n,那麼fgets( )將讀入n-1個字元,或者讀到遇到的第乙個換行符為止。

如果fgets( )讀到乙個換行符,會把它儲存在字串中。

fgets( )函式的第三個引數指明要讀入從鍵盤輸入的資料,則以stdin(標準輸入)作為引數,該識別符號定義在stdio.h中。

由於fgets( )儲存換行符,所以fgets( )必須和fputs( )配套使用。

gets_s( )函式:

gets_s( )只從標準輸入中讀取資料,所以不需要第三個引數。

如果gets_s( )讀到換行符,會丟棄它而不是儲存它。

如果gets_s( )讀到最大字元數都沒讀到換行符。會將所讀到的字元全部捨棄。

s_gets( )函式:

他是fgets( )完善。他將fgets( )最後儲存的換行符改為c語言字串末尾的"\0"

s_gets( )函式的用法

char

*s_gets

(char

*st,

int n)

return ret_val;

}

最常見的scanf函式就不再介紹了。

strlen( )函式:用於統計字串的長度。

void

fit(

char

*string,

unsigned

int size)

strcat( )函式:用於拼接字串。

#include

#include

intmain

(void

)

strncat( )函式:可以指定新增字串個數的strcat( )函式。

strncat

(flower,addon,23)

;

strcmp( )函式:將所給字串與已儲存的字串作比較。

#include

#include

#define answer "great"

intmain

(void

)

strncmp( )函式:可以指定比較字串個數的strcmp( )函式。

strcmp

(try,answer,5

);

strcpy( )函式:將乙個字串陣列複製到另乙個字串陣列的函式。

#include

#include

intmain

(void

)

執行結果

s smell like old shoes

s smell like old shoes

strncpy( )函式:可以指定複製字串個數的strcpy( )函式。

strcpy

(flower,addon,23)

;

#include

#include

char

*s_gets

(char

* st,

int n)

;#define maxtitl 41

#define maxautl 31

struct book

;int

main

(void

)char

*s_gets

(char

* st,

int n)

return ret_val;

}

適用於需多次使用結構體的情況。

struct book 

;

適用於只使用一次的結構體。

struct

library;

library.title=

"chicken of the andes"

;library.author=

"disma lapoult"

;library.value=

29.99

;

struct book library=

;

自定義函式找出二維矩陣的鞍點,如果沒有鞍點列印相應資訊。

鞍點:該元素在矩陣所在的行中最大,所在的列中最小。

矩陣大小不超過5*5

輸入:矩陣的行數 矩陣的列數

矩陣每一行的數字

測試輸入:

4 44 4 5 5

1 2 5 4

1 2 4 3

8 9 6 8

期待輸出:

第3行第3列是鞍點,鞍點是:4

#include

intmain

(void)}

if(c==0)

}if(d==0)

printf

("沒有鞍點。");

return0;

}

演算法題 字串旋轉

對於乙個字串,和字串中的某一位置,請設計乙個演算法,將包括i位置在內的左側部分移動到右邊,將右側部分移動到左邊。給定字串a和它的長度n以及特定位置p,請返回旋轉後的結果。測試樣例 abcdefgh 8,4 返回 fghabcde 正常解法 1.用 按特定位置訪問逐字元拷貝 class stringr...

演算法題 字串解碼

1,給定乙個字串,目標是將寫在 和 之間的字串,重複 號前面的數字次數 數字只會是個位數 2,例如 輸入結果 strs he3 llo world 輸出結果 res hellollolloworld 輸入結果 strs he3 ll2 o wo rld 輸出結果 res helloowolloowo...

字串資料結構演算法題 C

1 最長不重複子串 使用string和vector string findlongestnonrepeatsubstring string str else vector iterator it svec.begin int maxindex 0 for unsigned int i 1 i sve...