strncpy strncat strncmp strnlen是較爲安全的字符串函數
int main(void){
char *src = "zhouxudong";
char dst[] = "huawei";
strncat(dst, src, strnlen(src, 5));
printf("%s\n", dst);
strncpy(dst, src, strlen(src));
printf("%s\n", dst);
printf("%s\n", src);
printf("%d\n", strlen(src));
char *str1 = "Hello world";
char *ans1,*ans2;
ans1 = strrchr(str1, 'l'); // 獲取最後一個'l'所在的地址,ans1爲指針
ans2 = strchr(str1, 'l'); // 獲取第一個'l'所在的地址
printf("%s\n", ans1);
printf("%s\n", ans2);
char *ans;
ans = strpbrk(str1,"aelw"); // 獲取str1中,任何一個在"aelw"中的字母的地址
printf("%s\n", ans);
int len;
char buffer[] = "25,142,122.china";
len = strspn(buffer,"0123456789"); // 獲取buffer中,以"0123456789"開頭的字母數
printf("%d\n",len);
printf("%s\n",buffer+len);
char numberspace[] = "1234567890";
char *token;
for (token = strtok(buffer, numberspace); token != NULL; token = strtok(NULL, numberspace)) // 獲取buffer中,阿拉伯數字之間相隔的地址.
printf("Next token is %s\n",token);
}
strnlen(src,5),獲取字符串src長度,如果大於5,那麼返回5,否則返回src的字符串長度(不算null)
strncat(dst, src, strnlen(src, 5)),將src的前5個字符複製到dst的後面,並加上一個null。
strncpy(dst, src,10),是將src前10個字符拷貝到dst中。但並不會加上null。【這點與strcpy不一樣,strcpy是帶上null的拷貝】
輸出結果:
huaweizhoux
zhouxudongx
zhouxudong
10
ld
llo world
ello world
2
,142,122.china
Next token is ,
Next token is ,
Next token is .china