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;
    }
  • 相关阅读:
    三.Python数据类型详述
    二.Python基础语法和数据类型
    一.Python特点
    Hive之explode和lateral view
    javascript之函数作用域
    javascript之函数使用
    javascript之函数定义
    javascript之变量
    Html之元素
    Html之页面
  • 原文地址:https://www.cnblogs.com/wanghao-boke/p/11644309.html
Copyright © 2011-2022 走看看