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");
    }
  • 相关阅读:
    python机器学习基础教程-鸢尾花分类
    LaTeX实战经验:如何写算法
    Latex公式最好的资料
    BibTex (.bib) 文件的注释
    Latex中参考文献排序
    LATEX双栏最后一页如何平衡两栏内容
    Latex强制图片位置
    Endnote输出Bibtex格式
    redis学习
    20180717
  • 原文地址:https://www.cnblogs.com/godehi/p/8430346.html
Copyright © 2011-2022 走看看