C 初學記錄(字串與指標操作庫函式)

2021-09-30 00:13:14 字數 1969 閱讀 3724

測試程式

#include#includeusing namespace std;

int a[204],b[204],lena,n;

char s1[100]="12345";

char s2[100]="abcdefg";

char s3[100]="abcde";

int main()

{ strncat (s1,s2,3);//s1="12345abc";

strncpy(s1,s3,3);//s3的前三個字元拷貝到s1,s1="abc45abc";

strncpy(s2,s3,6);//s2="abcde";

strncmp(s1,s3,3);//比較s1和s3的前三個字元,比較結果相等則輸出0,小於則輸出負數,大於則輸出正數;

char *p=strchr(s1,'b');//在s1中查詢'b' 第一次出現的位置;

if(p)//判斷p是否為空指標。

cout<<"5)"<解釋與函式**

char *strchr(const char* str,int c);

作用是尋找字元c在字串str中第一次出現的位置。如果找到,就返回指向該位置的char*指標;如果str中不包含字元c,則返回null。

strncpy(char s1[a],char s2[b],n)
作用是如果s3長度大於等於n,則將s3的前n個字元拷貝到s1裡面去,相應的會替換掉s1裡面的n個字元,若小於n則全部拷貝到s1裡面去,且「\0」也會被拷貝,即s3的字元長度。

strncat(const char s1[a],char *s2[b],n);
作用是把s2陣列的前n個字元貼上到s1陣列的後面。

char* strstr(const char*str,const char*substr);
作用是尋找子串substr在str中第一次出現的位置,如果找到,就返回指向該位置的指標,沒找到就返回null。

int stricmp(const char *s1,const char *s2);
作用是大小寫無關的字串比較,如果是s1小於s2則返回負數,若等於則返回0,大於則返回正數。不同編譯器結果可能不同。

int strncmp(const char *s1,const *s2,int n);
作用是比較是s1前n個字元組成的子串和s2前n個字元組成的子串的大小,若長度不足n,則取整個串作為子串。返回值和strcmp類似。

char *strncpy(char *dest,const char *src,int n);
作用是拷貝src的前n個字元到dest。如果src長度大於等於n,該函式不會自動往dest中寫入「\0」,若src長度不足n,則拷貝src全部內容以及結尾的「\0」到dest。

char *strtok(char *str,const char * delim);
連續呼叫該函式若干次,可以做到:從str中逐個抽取出被字串delim中的字元分隔開的若干個子串。

int atoi(char *s);
將字串s裡的內容轉換成乙個整形數返回。比如,字串s的內容是「1234」,那麼函式返回值就是1234,如果s格式不是乙個整形,比如「a12」,那麼返回0。

double atof(char *s);
將字串s中的內容轉換成實數返回,比如,「12.34」就會轉換成12.34.如果s的格式不是乙個實數,則返回0。

char *itoa(int calue,char *string,int radix);
將整形值value以radix進製表示法寫入string。

C 字串指標與字串陣列

在做面試100題中第21題時,發現char astr abcdefghijk 0 和char astr 有點區別,以前一直以為是一樣的,但是在該程式中採用字串指標執行一直出錯。後來在網上查查,果然發現大大的不同。分析 當你需要修改字串時,採用指標指向該字串編譯通過但是執行出錯,而採用字串陣列時不會出...

字串指標操作

char s abc char ptr abc cout s cout s scout s scout s 1 s 1 cout s 1 s 1 cout s 0 s 0 cout s 0 void s 0 cout s 0 s 0 printf p n s 0 0061ff1c cout s 1 ...

《C和指標》 字串操作補 字串記憶體操作

1.對於 string 0 它其實等價於 string 0 string 2.對於 strcpy函式,如果要複製的字串比老字串短,由於新字串是以nul 即 0 結尾,所以老字串最後剩餘的幾個字元也會被有效地刪除。如 char message original message strcpy messa...