久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

字符串與字符數組

 聯(lián)通手機用戶 2017-12-03


1.1 字符數組定義

char array[100];

 

1.2 字符數組初始化

char array[100] = {'a', 'b', 'c','d'};

char array[100] = 'abcd';

char array[100] = { 0 };

char array[] = 'abcd';

 

1.3 字符數組使用

 

1.4 隨機數產生函數randsrand

頭文件stdlib.h

Rand是偽隨機數產生器,,每次調用rand產生的隨機數是一樣的

如果調用rand之前先調用srand就出現(xiàn)任意的隨機數

只要能保證每次調用srand函數的時候,,參數的值是不同的,那么rand函數就一定會產生不同的隨機數

#include 

int t = (int)time(NULL);

srand(t);

for (int i = 0; i <>10; i++)

{

  printf('%d\n', rand());

}


 

 

1.5 scanf輸入字符串

 char s[10] = { 0 };

 scanf('%s', s);//'%s'的作用就是輸入一個字符串的,scanf是以回車鍵作為輸入完成標示的,,但回車鍵本身并不會作為字符串的一部分

 //如果scanf參數中的數組長度小于用戶在鍵盤輸入的長度,,那么scanf就會緩沖區(qū)溢出,導致程序崩潰

 int i;

 for (i = 0; i <>10; i++)

 {

   printf('%d\n', s[i]);

 }

 printf('----------------------------------\n');

 printf('%s\n', s);

 return 0;

 

1.6 字符串的結束標志

Scanf將回車,,空格都認為是字符串輸入結束標志,,

1.7 字符串處理函數

1.7.1 gets

 char s[100] = { 0 };

 gets(s);//gets認為回車的輸入結束標示,空格不是輸入結束標示,,所以用gets這個函數就可以實現(xiàn)輸入帶空格的字符串

 //getsscanf一樣存在緩沖區(qū)溢出的問題

 

 int i;

 for (i = 0; i <>10; i++)

 {

   printf('%d\n', s[i]);

 }

 printf('----------------------------------\n');

 printf('%s\n', s);

 

Gets不能用類似“%s或者%d”之類的字符轉義,,只能接受字符串的輸入

1.7.2 fgets函數

gets函數不檢查預留緩沖區(qū)是否能夠容納用戶實際輸入的數據。多出來的字符會導致內存溢出,,fgets函數改進了這個問題,。

由于fgets函數是為讀取文件設計的,,所以讀取鍵盤時沒有gets那么方便

 char s[100] = { 0 };

 fgets(s, sizeof(s), stdin);

 

1.7.3 puts函數

puts函數打印字符串,,與printf不同,puts會在最后自動添加一個\n

 char s[] = 'hello world';

 puts(s);

 

1.7.4 fputs函數

fputs是puts的文件操作版本,,

 char s[] = 'hello world';

 fputs(s, stdout);

1.7.5 strlen,,字符串長度

size_t  strlen(const char * _Str);

返回不包含字符串結尾\0的字符串長度

 char s[100] = 'hello world';

 int len = strlen(s);//得到字符串長度,返回一個字符串中有效字符的數量(不包含字符串結尾的0

 printf('len = %d\n', len);

 return 0;

 

1.7.6 strcat,字符串追加

size_t  strcat(char * _Str1, const char * _Str2);

將參數_Str2追加到_Str1后尾

 char s[1024] = 'hello world';

 int len = strlen(s);//得到字符串長度,返回一個字符串中有效字符的數量(不包含字符串結尾的0

 printf('len = %d\n', len);

 char s1[100] = 'abc123456789';

 strcat(s, s1);//將兩個字符串合并,,結果放入第一個參數里面,,strcat也存在緩沖區(qū)溢出的問題

 printf('%s\n', s);

 

1.7.7 strncat,字符串有限追加

size_t  strncat(char * _Str1, const char * _Str2, size_t len);

 

1.7.8 strcmp,,字符串比較

int strcmp(const char * _Str1, const char * _Str2);

比較兩個字符串是否相等,,相等返回0,不等返回非0

1.7.9 strncmp,,字符串有限比較

 

1.7.10 strcpy字符串拷貝

char *strcpy(char * _Str1, const char * _Str2);

將參數_Str2拷貝到參數_Str1

1.7.11 strncpy字符串有限拷貝

 

1.7.12 sprintf,,格式化字符串

printf函數功能類似,printf函數將格式化結果輸出到屏幕,,sprintf將格式化結果輸出到字符串

1.7.13 Sscanf函數

Sscanf類似于scanf函數,,,scanf從鍵盤讀取用戶輸入,scanf從指定格式化字符串讀取輸入

 

1.7.14 strchr查找字符

char * strchr(char * _Str, int _Ch),;

在參數_str中查找參數_Ch指定字符,,找到返回字符_Ch_Str中所在位置,沒有找到返回NULL;

1.7.15 strstr查找子串

char * strstr(char * _Str, const char * _SubStr)

在參數_str中查找參數_SubStr指定子串,,找到返回子串在_Str中所在位置,,沒有找到返回NULL;

 

1.7.16 strtok分割字符串

字符在第一次調用時strtok()必需給予參數s字符串,,往后的調用則將參數s設置成NULL每次調用成功則返回指向被分割出片段的指針

 char buf[] = 'abc@defg@igk';

 char *p = strtok(buf, '@');

 while (p)

 {

   printf('%s\n', p);

   p = strtok(NULL, '@');

 }

 

    本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,,不代表本站觀點,。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,,謹防詐騙,。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報,。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多