zoukankan      html  css  js  c++  java
  • 多级指针使用分割字符串

    两个赋值指针挖字符串

    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>
    
    int spitString(const char *buf1,char c,char buf2[10][30],int *count)
    {
        char *p = NULL, *pTmp = NULL;
        int tmpcount = 0;
        
        p = buf1;
        pTmp = buf1;
        
        do
        {
            p = strchr(p,c);
            if(p != NULL)
            {
                if(p-pTmp > 0)
                {
                    strncpy(buf2[tmpcount],pTmp,p-pTmp);
                    buf2[tmpcount][p-pTmp] = '';
                    tmpcount++;
                    pTmp = p = p + 1;
                }
            }
            else
            {
                break;
            }
        }while(*p != '');
        
        *count = tmpcount;
        return 0;
    }
    
    int main()
    {
        int iRet = 0, i = 0;
        char *p1 = "abcdef,acccd,eeee,aaaa,e3eeee,ssss,";
        char cTem = ',';
        int nCount;
        
        char myArray[10][30];
        
        iRet = spitString(p1,cTem,myArray,&nCount);
        if(iRet != 0)
        {
            printf("fun spitString() error : %d 
    ",iRet); 
        }
        
        for(i = 0; i < nCount; i++)
        {
            printf("%s 
    ",myArray[i]);
        }
        return 0;
    }

    使用第三种内存模型

    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>
    
    int spitString2(const char *buf1,char c,char **myp,int *count)
    {
        char *p = NULL, *pTmp = NULL;
        int tmpcount = 0;
        
        p = buf1;
        pTmp = buf1;
        
        do
        {
            p = strchr(p,c);
            if(p != NULL)
            {
                if(p-pTmp > 0)
                {
                    strncpy(myp[tmpcount],pTmp,p-pTmp);
                    myp[tmpcount][p-pTmp] = '';
                    tmpcount++;
                    pTmp = p = p + 1;
                }
            }
            else
            {
                break;
            }
        }while(*p != '');
        
        *count = tmpcount;
        return 0;
    }
    
    int main()
    {
        int iRet = 0, i = 0;
        char *p1 = "abcdef,acccd,eeee,aaaa,e3eeee,ssss,";
        char cTem = ',';
        int nCount;
        
        char **p = NULL;
        p = (char **)malloc(10 * sizeof(char *));
        if(p == NULL)
        {
            return;
        }
        
        for(i = 0; i < 10; i++)
        {
            p[i] = (char *)malloc(30 * sizeof(char));
        }
        
        iRet = spitString2(p1,cTem,p,&nCount);
        if(iRet != 0)
        {
            printf("fun spitString() error : %d 
    ",iRet); 
        }
        
        for(i = 0; i < nCount; i++)
        {
            printf("%s 
    ",p[i]);
        }
        
        for( i = 0; i < 10; i++)
        {
            free(p[i]);
        }
        free(p);
        return 0;
    }
  • 相关阅读:
    网页前端开发,对于图片慢加载简介
    createDocumentFragment
    mobile端
    Handler对象
    移动应用表单设计秘籍
    【194】Windows 上使用 wget
    【193】◀▶ PowerShell 官方资料索引
    【192】PowerShell 相关知识
    【191】◀▶ Powershell 命令集 Cmdlets
    高性能MySql进化论(九):查询优化器常用的优化方式
  • 原文地址:https://www.cnblogs.com/wanghao-boke/p/11644309.html
Copyright © 2011-2022 走看看