请写出一个程序,使用指定字符分割字符串,函数有3个参数,第一个输入是要分割的字符串,第二个是指定字符,输出为分割后的字符串指针数组和数组长度。
时间: 2024-05-01 20:18:25 浏览: 49
好的,以下是程序代码:
```
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void split(char *str, char *delimiter, char ***result, int *count){
int len = strlen(str);
char *token, *temp;
temp = (char*)malloc(len * sizeof(char));
strcpy(temp, str);
int i = 0;
token = strtok(temp, delimiter);
while(token != NULL){
(*result)[i++] = token;
token = strtok(NULL, delimiter);
}
*count = i;
}
int main(){
char str[] = "hello@world@this@is@a@string";
char delimiter[] = "@";
char **result;
int count;
int i;
result = (char**)malloc(sizeof(char*) * strlen(str));
for(i = 0; i < strlen(str); i++){
result[i] = (char*)malloc(sizeof(char) * strlen(str));
}
split(str, delimiter, &result, &count);
for(i = 0; i < count; i++){
printf("%s\n", result[i]);
}
return 0;
}
```
注意,这里程序是使用字符“@”进行分割的,你可以根据实际需求修改成其它字符。同时,需要注意使用完毕后要对动态分配的内存进行释放。
阅读全文