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

 

 

 
 
posted @ 2023-05-05 18:13  jason8826  阅读(68)  评论(0)    收藏  举报