用c语言字符串分割成数组
时间: 2023-09-30 11:09:59 浏览: 85
可以使用C语言中的strtok函数将一个字符串分割成多个子字符串,存储到一个数组中。例如:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[] = "apple,banana,orange";
char *token;
char *array[10];
int i = 0;
token = strtok(str, ",");
while (token != NULL) {
array[i++] = token;
token = strtok(NULL, ",");
}
for (int j = 0; j < i; j++) {
printf("%s\n", array[j]);
}
return 0;
}
```
这段代码将字符串"apple,banana,orange"按照逗号分割成三个子字符串,并存储到一个字符串数组中。输出如下:
```
apple
banana
orange
```
其中strtok函数的第一个参数为需要分割的字符串,第二个参数为分隔符。每次调用strtok函数返回一个指向下一个子字符串的指针,当没有更多的子字符串时返回NULL。
相关问题
c语言将字符串转成数组
要将字符串转换为数组,你可以使用C语言中的字符数组来存储字符串的每个字符。以下是一个示例代码段,展示了如何将字符串转换为字符数组:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[] = "Hello, World!"; // 定义一个字符串
int length = strlen(str); // 获取字符串长度
// 定义一个字符数组,长度为字符串长度加1(用于存储字符串结尾的空字符'\0')
char arr[length + 1];
// 将字符串复制到字符数组中
strcpy(arr, str);
// 打印字符数组中的内容
printf("字符数组: %s\n", arr);
return 0;
}
```
运行以上代码,你将得到输出:
```
字符数组: Hello, World!
```
这样,你就成功地将字符串转换为数组了。请注意,字符数组的大小应该足够容纳字符串及其结尾的空字符。
C语言字符串分割函数
C语言中的字符串分割函数是strtok。它可以将一个字符串分解成一组小字符串,根据指定的分隔符进行切割。
strtok函数的声明如下:
char *strtok(char *str, const char *delim)
参数说明:
1. str - 要被分解成一组小字符串的字符串。
2. delim - 包含分隔符的C字符串。
返回值:
该函数返回被分解的第一个子字符串,如果没有可检索的字符串,则返回一个空指针。
下面是一个例子:
#include <string.h>
#include <stdio.h>
int main() {
char str[80] = "This is - www.runoob.com - website";
const char s = "-";
char *token;
/* 获取第一个子字符串 */
token = strtok(str, s);
/* 继续获取其他的子字符串 */
while (token != NULL) {
printf("%s\n", token);
token = strtok(NULL, s);
}
return 0;
}
输出结果:
This is
www.runoob.com
website
需要注意的是,strtok函数会修改原字符串的值,如果需要保留原值,则需要保存一份副本。另外,如果想要分割多种字符,可以使用数组。