二、結構和其他資料形式
結構體初始化
三、演算法題
字串與字串函式都必須在標頭檔案下使用。
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...