zoukankan      html  css  js  c++  java
  • C++字符串根据字符截断为二级指针

    #include <iostream>
    #include <string>
    #include <windows.h>
    using namespace std;
    
    char ** cutStringT(char * p,char c,int *n)
    {
        char *a = p;//定义一个头指针
        char *b = p;//定义一个末尾指针
        int count = 0;//每段字符串计数
        char **arr = (char **)malloc(10 * sizeof(char *));//在堆分配十个地址空间
        //遍历 直到字符串最后
        while (*a != '' && *n <= 10)
        {
            b = strchr(a, c);//获取char c的指针
            if (b == NULL) break;//找不到则退出循环
            count = strlen(a) - strlen(b);//计算得出要存储的字符数
            arr[*n] = (char *)malloc(count * sizeof(char) + 1);//在堆分配对应大小的内存空间 多一个分配给结束符
            memcpy(arr[*n], a, count);//复制字符串
            arr[*n][count] = '';//添加结束字符串
            a = b + 1;//定义新的头指针
            *n = *n+1;//多一个
        }
        return arr;
    }
    
    void main()
    {
        char str[] = "zxc,asd,xdasd,cfasd,";//要转化的字符串
        int n = 0;//包含个数
        char **p = cutStringT(str,',', &n);//调用方法返回二级指针
        //打印
        for (int i = 0; i < n; i++)
        {
            cout << p[i] << endl;
        }
        //释放内存
        for (int i = 0; i < n; i++)
        {
            free(p[i]);
        }
        free(p);
        system("pause");
    }
  • 相关阅读:
    Git--记一次丢失本地记录但是代码已提交到gerrit
    IDEA--IDEA配置web项目
    JavaSE--泛型
    Cassandra--Cassandra 安装
    Git--.gitignore
    org.springframework.test.context.junit4.SpringJUnit4ClassRunner
    散列·跳房子散列
    散列·布谷鸟散列
    散列·完美散列
    散列·再散列
  • 原文地址:https://www.cnblogs.com/godehi/p/8430346.html
Copyright © 2011-2022 走看看