string.h
计算字符串 str 的长度,直到空结束字符,但不包括空结束字符
size_t strlen(const char *str) { size_t len = 0; while (*str++ != '\0') { len++; } return len; }
把 str1 所指向的字符串和 str2 所指向的字符串进行比较
int strcmp(const char *str1, const char *str2) { // 这里使用*str1 != '\0'和*str2 != '\0'是一样的 while (*str1 == *str2 && *str1 != '\0') { str1++; str2++; } return *str1 - *str2; }
把 src 所指向的字符串复制到 dest
char *strcpy(char *dest, const char *src) { char *temp = dest; while (*dest++ = *src++); return temp; }
把 src 所指向的字符串追加到 dest 所指向的字符串的结尾
char *strcat(char *dest, const char *src) { char *temp = dest; while (*dest != '\0') { dest++; } while (*dest++ = *src++); return temp; }
注:strcpy和strcat是不安全的,建议使用strncpy和strncat !!!
strtok()函数:字符串分割
函数原型: char *strtok(char *str, const char *delim)
参数str:第一次调用时传入被切割字符串的首地址;后面调用时传入NULL(不做深究)
参数delim:表示切割字符串(字符串中每个字符都会当作分隔符)
返回值:返回下一个分割串的地址,到末尾时返回NULL
注:strtok切割字符串,实际上就是将分割符的字符替换为'\0'并且返回首地址
#include <stdio.h> #include <string.h> int main(int argc, char *argv[]) { char chr[100] ="ad adf daf dfas"; char *str = strtok(chr, " ");; while (NULL != str) { printf("%s\n", str); str = strtok(NULL, " "); } return 0; } 输出: ad adf daf dfas
浙公网安备 33010602011771号