c语言写一个字符串分割程序
时间: 2024-11-12 14:42:03 浏览: 10
C语言中计算字符串长度与分割字符串的方法
在C语言中,你可以编写一个简单的字符串分割程序,将字符串按照指定的分隔符拆分成一个个子串。这里以逗号(,)作为分隔符为例:
```c
#include <stdio.h>
#include <string.h>
// 定义一个函数来分割字符串
void split_string(const char* str, char** result, const char delimiter) {
// 初始化结果数组
int count = 0;
for (; *str && *str != delimiter; ++str) {
if (*str == '\0')
break;
if (*str != ' ')
count++;
}
*result = (char*)malloc(sizeof(char) * (count + 1)); // 分配内存空间
strcpy(*result, str);
// 找到所有子串
char* current = strtok(str + 1, &delimiter);
while (current != NULL) {
count++;
result[count] = (char*)malloc(sizeof(char) * (strlen(current) + 1));
strcpy(result[count], current);
current = strtok(NULL, &delimiter);
}
result[count] = NULL; // 结束数组
}
int main() {
char str[] = "apple,banana,grape,orange";
char** parts = NULL;
split_string(str, &parts, ',');
// 输出结果
for (int i = 0; parts[i] != NULL; i++) {
printf("%s\n", parts[i]);
free(parts[i]); // 释放每个子串的内存
}
free(parts); // 释放结果数组的内存
return 0;
}
```
这个程序首先计算分隔符之前的字符串长度,然后分配内存保存它,接着利用`strtok()`函数遍历字符串,每次获取一个由分隔符分隔出的新子串。
阅读全文