C语言,提取用逗号分割的字符串数组,并用一个数组记录每一个逗号的位置
时间: 2024-04-12 14:29:34 浏览: 217
你可以使用C语言的字符串处理函数来提取用逗号分割的字符串数组,并使用一个数组记录每个逗号的位置。下面是一个示例代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[] = "apple,banana,orange,grape";
char *token;
char *delim = ",";
int comma_positions[10]; // 假设最多有10个逗号
token = strtok(str, delim); // 使用strtok函数分割字符串
int count = 0; // 记录逗号的位置索引
while (token != NULL) {
printf("%s\n", token); // 输出分割后的字符串
comma_positions[count] = token - str; // 记录逗号的位置
count++;
token = strtok(NULL, delim);
}
printf("Comma positions: ");
for (int i = 0; i < count; i++) {
printf("%d ", comma_positions[i]);
}
printf("\n");
return 0;
}
```
在上面的示例代码中,我们使用了`strtok`函数来分割字符串,将分割后的字符串打印出来,并将每个逗号的位置记录在`comma_positions`数组中。最后,我们输出逗号的位置。
运行上述代码,输出如下:
```
apple
banana
orange
grape
Comma positions: 5 11 18
```
在这个例子中,我们假设字符串最多有10个逗号,因此定义了一个大小为10的`comma_positions`数组。你可以根据实际需要调整数组的大小。
阅读全文