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;
    }
  • 相关阅读:
    一致性 hash 算法( consistent hashing )a
    wcf 推送 与 广播
    TFS 自动同步Server 端文件的批处理命令
    PHP面向对象
    H5缓存机制浅析-移动端Web加载性能优化【干货】
    100+ 超全的web开发工具和资源
    从零开始搭建论坛(一):Web服务器与Web框架
    JQuery:选择器
    JQuery:事件
    JQuery:DOM操作
  • 原文地址:https://www.cnblogs.com/wanghao-boke/p/11644309.html
Copyright © 2011-2022 走看看