c语言字符串拆分成数组demo
时间: 2024-10-28 07:09:27 浏览: 19
在C语言中,将字符串转换成字符数组通常涉及动态内存分配,因为字符串实际上是在字符数组的结尾有一个空终止符'\0'。下面是一个简单的示例,展示了如何实现这个功能:
```c
#include <stdio.h>
#include <stdlib.h> // 需要stdlib.h头文件来使用malloc()
// 函数声明,用于处理字符串转数组
char* string_to_array(const char* str);
int main() {
const char* input_str = "Hello, World!";
int len = strlen(input_str); // 获取字符串长度不包括空字符
// 动态分配内存
char* arr = (char*)malloc(len + 1); // +1为了包含空字符
if (arr == NULL) { // 检查是否分配成功
printf("Memory allocation failed.\n");
return 1;
}
// 复制字符串到数组,并添加空字符
for (int i = 0; i < len; i++) {
arr[i] = str[i];
}
arr[len] = '\0'; // 添加空字符
// 输出结果数组
printf("String as array: ");
for (int i = 0; i <= len; i++) {
printf("%c", arr[i]);
}
printf("\n");
// 释放内存
free(arr);
return 0;
}
// 字符串转数组函数
char* string_to_array(const char* str) {
// ... (内容已在main中)
return arr; // 返回指向数组的指针
}
```
在这个例子中,`string_to_array`函数接收一个字符串作为输入,计算其长度并动态分配内存,然后复制每个字符到新数组中,并在末尾加上空字符。记得在结束程序之前释放所分配的内存。
阅读全文