c语言之基于strtok实现字符串分割

char str[] = "apple,banana,cherry,date,我不是萧海哇"; // 必须是可修改的字符数组
const char delimiters[] = ",";           // 分隔符
char** output=NULL;
int cnt = 0;
printf("Original string: %s\n", str);
printf("Splitting by '%s':\n", delimiters);
char* token = strtok(str, delimiters);
while (token != NULL) {
	//printf("Token: %s\n", token);
	output =(char **) realloc(output, (cnt+1) * sizeof(char*));
	output[cnt] = (char*)malloc(strlen(token)+1);
	memset(output[cnt],0, strlen(token) + 1);
	memcpy(output[cnt++], token, strlen(token));
	// 后续调用传入 NULL
	token = strtok(NULL, delimiters);
}
// 原始字符串已被修改
printf("Modified original string: %s\n", str);
for (int i = 0; i < cnt; i++) {
	printf("-%s-\r\n",output[i]);
	free(output[i]);
}
free(output);

效果:
image

posted @ 2025-08-22 10:53  我不是萧海哇~~~  阅读(8)  评论(0)    收藏  举报