|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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;
- }
复制代码 |
|