|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
/*
有一个字符串符合以下特征(”abcdef,acccd,eeee,aaaa,e3eeeee,sssss,";),要求写一个函数(接口),输出以下结果
1) 以逗号分割字符串,形成二维数组,并把结果传出;
2) 把二维数组行数运算结果也传出。
strchr(“aa,aa”,’,’ );
请自己定义一个接口(函数)。
要求1:能正确表达功能的要求,定义出接口(函数)(30分);
要求2:正确实现接口(函数),并实现功能(40分);
要求3:编写正确的测试用例。(30分)。
*/
#include <stdio.h>
#include<stdlib.h>
#include<string.h>
int spitString(const char *buf1, const char c, char buf[10][30], int *mycount)
{
int ret = 0;
int count = 0;
int tmpcount = 0;
char *p = NULL;
char *tmp = NULL;
char buf2[1024];
if (buf == NULL || buf == NULL || mycount == NULL)
{
ret = -1;
printf("err is spitString() %d\n", ret);
}
int len = strlen(buf1);
if (len > 1024*10)
{
ret = -2;
printf("输入字符串过长!");
}
if (buf1[len - 1] != ',')
{
strcpy(buf2, buf1);
strcat(buf2, ",");
}
else
{
strcpy(buf2, buf1);
}
p = buf2;
tmp =buf2;
do
{
p = strchr(buf2, c);
if (p != NULL)
{
tmpcount = p - tmp;
memcpy(buf[count], tmp, tmpcount);
buf[count][tmpcount] = '\0';
tmp = p = p + 1;
count++;
}
else
{
break;
}
}while (*p != '\0');
*mycount = count;
return ret;
}
int main()
{
int ret = 0;
int i = 0;
const char *p = "dfhgebg,uefhrv,dhgurghut,ddhufguuthg,fuheig4u";
int ncount = 0;
const char c = ',';
char buf[10][30] ;
ret = spitString(p, c, buf, &ncount);
if (ret = 0)
{
for (i = 0; i < ncount; i++)
{
printf("%s\n", buf[i]);
}
}
else
{
printf("func spitString() err");
}
return 0;
} |
|