C语言提取字符串中逗号的位置并保存在数组中
时间: 2024-04-12 08:32:01 浏览: 205
要提取字符串中逗号的位置并将其保存在数组中,您可以使用以下代码示例:
```c
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void extractCommaPositions(const char* str, int** positions, int* count) {
int strLength = strlen(str);
int* commaPositions = malloc(strLength * sizeof(int));
int commaCount = 0;
for (int i = 0; i < strLength; i++) {
if (str[i] == ',') {
commaPositions[commaCount] = i;
commaCount++;
}
}
*positions = commaPositions;
*count = commaCount;
}
int main() {
const char* str = "Hello, World!, How are you, doing?";
int* commaPositions;
int commaCount;
extractCommaPositions(str, &commaPositions, &commaCount);
printf("Comma positions: ");
for (int i = 0; i < commaCount; i++) {
printf("%d ", commaPositions[i]);
}
printf("\n");
free(commaPositions);
return 0;
}
```
在上述代码中,`extractCommaPositions` 函数接受一个字符串 `str`,一个指向整数数组的指针 `positions`,以及一个整数指针 `count`。该函数遍历字符串中的每个字符,如果找到逗号,则将其位置保存在 `commaPositions` 数组中,并更新 `commaCount` 计数器。最后,通过指针参数返回逗号位置数组和计数。
在 `main` 函数中,我们声明了一个示例字符串 `str`,以及一个指针 `commaPositions` 和一个整数 `commaCount`,用于保存逗号位置数组和计数。我们调用 `extractCommaPositions` 函数来提取逗号位置,并使用循环打印出逗号位置数组的内容。最后,别忘了使用 `free` 函数释放动态分配的内存。
希望这个示例满足了您的需求!如果还有其他问题,请随时提问。
阅读全文