luck_roki 发表于 2017-7-16 09:48:39

两个辅助指针变量挖字符串

有一个字符串符合以下特征("sgdhgd,agdsg,agdgs,gsaag,agds,"),要求写出一个函数(接口),输出以下结果:
01、以逗号分割字符串,形成二维数组,并把结果传出
10、把二维数组行数也传出

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

//参数说明
//in        源字符串地址
//c        题设的分割字符
//out        目标二维数组
//count        二维数组的行数
int spitString(char *in, char c, char out, int *count)
{
        //检查参数合法性
        if (in == NULL || out == NULL || count == NULL) {
                perror("Parameter error");
                return -2;
        }
        //辅助指针变量,不修改源字符串
        char *p = in;

        int k = 0;
        int i = 0;
        while (1) {
                if (*p == c) {
                        out = '\0';
                        ++k;
                        i = 0;
                        ++p;
                }
                else if(*p == '\0') {
                        *count = k;
                        break;
                }
                else {
                        out = *p;
                        ++i;
                        ++p;       
                }
        }
       

        return 0;
}

int main()
{
        int ret = 0;
       
        //以下四行均是题设给出
        char *p = "gscffgfr,wgcspa,giehfg,gufbsd,gjfnw,";
        char fuhao = ',';
        char myArray;
        int count = 0;

        ret = spitString(p, fuhao, myArray, &count);
        if (ret != 0) {
                perror("Function call failed");
                return -1;
        }

        //打印,检测结果
        for (int i = 0; i < count; ++i) {
                printf("%s\n", myArray);
        }

        return 0;
}

chopsticks 发表于 2017-7-16 22:09:30

learn more
页: [1]
查看完整版本: 两个辅助指针变量挖字符串