利用C语言数组字符串分隔
时间: 2024-10-09 08:00:24 浏览: 40
在C语言中,如果你有一个字符串数组,并希望按照特定字符(如逗号、空格或其他分隔符)将其分割成若干个子字符串,你可以使用`strtok()`函数结合数组来实现这个功能。`strtok()`函数会返回每个分割后的子字符串,每次调用它时需要指定一个指向整个字符串的指针和分隔符。
以下是基本步骤:
1. 定义一个全局变量作为`strtok()`的静态存储区,用于存储中间结果。
2. 首次调用`strtok()`时,传入原始字符串和分隔符作为参数,设置静态存储区为NULL,表示第一次处理。
3. 后续调用`strtok()`时,传递之前得到的子串(通常是静态存储区的地址),直到`strtok()`返回NULL,说明已经处理完所有子串。
例如:
```c
#include <stdio.h>
#include <string.h>
#define MAX_TOKENS 10 // 设置最大子字符串数量
char tokens[MAX_TOKENS][50]; // 存储子字符串的数组
char *token; // strtok()的临时指针
char str[] = "apple,banana,orange"; // 待分割的字符串
char delimiter = ','; // 分隔符
int main() {
token = strtok(str, delimiter);
int i = 0;
while (token != NULL && i < MAX_TOKENS - 1) { // 避免超过数组大小
strcpy(tokens[i++], token); // 将子串复制到数组中
token = strtok(NULL, delimiter); // 进行下一次分割
}
if (i == MAX_TOKENS - 1) {
printf("Warning: More tokens than expected.\n");
}
// 现在tokens数组包含了分隔后的子字符串
for (i = 0; i < MAX_TOKENS; i++) {
printf("%s\n", tokens[i]);
}
return 0;
}
```
阅读全文
相关推荐


















