关于c语言使用split函数的信息

发布时间:2022-11-26

本文目录一览:

1、c语言自己编写一个split字符串分割函数
2、C语言中字符切割函数split的实现是什么?
3、C语言中字符切割函数split的实现

c语言自己编写一个split字符串分割函数

这个是用c写的不过和c的原理也差不多我运行过了,有什么问题再问吧,c不知道能否运行,不过现在c/c程序设计试验系统通常都有嵌套c++,你打开c界面时单击vc6.0创建一个项目运行就可以了。

#include iostream
using namespace std;
char** split(char p[],char c,int k)
{
    int i,m,j;
    char **q;
    q=(char**)new char*[k];
    for(i=0;i<k;i++)
        q[i]=(char*)new char*[20];
    i=0;
    j=0;
    m=0;
    while(p[i])
    {
        if(p[i]!=',')
        {
            q[j][m++]=p[i++];
        }
        else
        {
            q[j][m]='\0';
            j++;
            m=0;
            i++;
        }
    }
    q[k-1][m]='\0';
    for(i=0;i<4;i++)
    {
        cout<<q[i];
        cout<<endl;
    }
    return q;
}
void main()
{
    int k;
    char p[]="ab,cde,efgh,ghi32";
    char c=',';
    int i=0,j=0,m=0;
    while(p[i])
    {
        if(p[i]==',')
            j++;
        i++;
    }
    j=j+1;//接受到底有多少个单词在分割后通过逗号去判断
    k=j;
    char**q=split(p,c,k);
    printf("\n");
    for(i=0;i<4;i++)
    {
        cout<<q[i];
        cout<<endl;
    }
}

C语言中字符切割函数split的实现是什么?

c语言中 有切割字符串的函数啊! strtok函数(const char *str, const char *ch) 第一个是字符串,第二个是以那个字符做切割。 例子:

#include <stdio.h>
#include <string.h>
int main(void)
{
    char s[] = "123-sldkf-123ls-343434-dfjdlkfj-dflcmvn";
    char *delim = "-";
    char *p;
    printf("%s ", strtok(s, delim));
    while((p = strtok(NULL, delim)))
        printf("%s ", p);
    printf("\n");
    return 0;
}

如果想用 -\ 两个符号切割的话:

char s[] = "dlkjf-sdlkfjsdf\lsdkljfl'sldkjf\sdkfjsdlf\lskdjfls";
char *delim = "-\\";

这样就可以了。

C语言中字符切割函数split的实现

#include stdio.h
#include string.h
// 将str字符以spl分割,存于dst中,并返回子字符串数量
int split(char dst[][80], char *str, const char *spl)
{
    int n = 0;
    char *result = NULL;
    result = strtok(str, spl);
    while( result != NULL )
    {
        strcpy(dst[n++], result);
        result = strtok(NULL, spl);
    }
    return n;
}
int main()
{
    char str[] = "what is you name?";
    char dst[10][80];
    int cnt = split(dst, str, " ");
    for (int i = 0; i < cnt; i++)
        puts(dst[i]);
    return 0;
}