• C和指针 第九章 字符串 字符 字节


    C语言中没有字符串类型,字符串是以NUL结尾的字符数组组成的。

    高级字符串查找:

    //计算字符串起始部分,有多少字符是在group中
    size_t strspn(char const * str, char const *group);
    //不在group中
    size_t strcspn(char const * str, char const *group);
    

      示例:

    #include <stdio.h>
    #include <string.h>
    
    int main()
    {
    	char str[] = "abababcccccccccccc";
    	printf("%lu
    ", strspn(str, "ab"));
    	printf("%lu
    ", strcspn(str, "b"));
    
    	return 0;
    }
    

    输出6 和 1

    //sep
    char * strpok(char * str, char const *sep);
    示例:
    #include <stdio.h>
    #include <string.h>
    
    int main()
    {
    	char str1[] = {"yangyangyangyangyangyangyang"};
    	char str2[strlen(str1)];
    	strcpy(str2, str1);
    	char *token;
    	char sep[2] = "g";
    
    	for(token = strtok(str2, sep); token != NULL; token = strtok(NULL, sep)){
    		printf("%s ", token);
    	}
    	printf("
    ");
    	printf("str1 %s
    ", str1);
    	printf("str2 %s
    ", str2);
    
    	return 0;
    }
    

    strtok的第一个参数不是NULL,函数将查找到字符串中的第一个标记。strtok同时保存它在字符串中的位置,如果第一个参数是NULL,函数就在同一个字符串中保存的位置开始像前面一样查找下一个标记,如果没有更多标记返回NULL,否则返回字符串指针。strtok会修改字符串。

    内存操作函数:

    由于字符串是字符结尾的,如果字符串内有NUL那么就需要使用内存操作函数。

    //从src开始的位置拷贝length个字节到dst内存起始位置
    void *memcpy(void *dst, void const *src, size_t length);
    
    //memmove和memcpy差不多,源和目的地可以重叠,memmove先把源拷贝到临时位置,然后再拷贝回来
    void *memmove(void *dst, void const *src, size_t length);
    
    //memcmp,和memchr分别是比较和查找
    void *memcmp(void *dst, void const *src, size_t length);
    void *memchr(void *dst, void const *src, size_t length);
    
    //memset将从src开始的length个字符设置成ch
    void *memset(void *src, int ch, size_t length);
    

     函数中参数类型都是void *,任何类型都可以转换成void *.

    #include <stdio.h>
    #include <string.h>
    
    
    int main()
    {
    	char str[100];
    	memset(str, 'a', 99);
    	str[100] = '';
    	printf("%s
    ", str);
    
    	return 0;
    }
    

    运行结果: 

     

  • 相关阅读:
    愿你出走半生,归来多赚点钱
    喝下这碗毒鸡汤:作为一个『乖』学生,请一定要以学业为主!
    劝你理财,是我最大的温柔-lip师兄
    大半夜客户问我为什么这么拼,我给她算了笔账,她嚎啕大哭......
    女人为什么要经济独立
    定投6年以亏损收场,他到底做错了什么
    你的死工资,正在拖垮你&一辈子需要花多少钱
    字符串的长度
    泥塑课
    最大的数
  • 原文地址:https://www.cnblogs.com/yangxunwu1992/p/5808202.html
Copyright © 2020-2023  润新知