马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
有一个字符串符合以下特征("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[10][30], 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[k][i] = '\0';
++k;
i = 0;
++p;
}
else if(*p == '\0') {
*count = k;
break;
}
else {
out[k][i] = *p;
++i;
++p;
}
}
return 0;
}
int main()
{
int ret = 0;
//以下四行均是题设给出
char *p = "gscffgfr,wgcspa,giehfg,gufbsd,gjfnw,";
char fuhao = ',';
char myArray[10][30];
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[i]);
}
return 0;
}
|