c语言字符串转数组

admin 28 0

在C语言中,字符串本质上就是一个字符数组,以空字符'\0'结尾,将字符串转换为数组实际上就是将字符串的内容复制到另一个字符数组中,以下是一个简单的示例:

```c

#include

#include

int main() {

char str[] = "Hello, World!"; // 原始字符串

char arr[50]; // 目标数组,大小应足够大以容纳原始字符串

// 使用strcpy函数将字符串复制到数组

strcpy(arr, str);

// 打印数组内容

printf("数组内容: %s\n", arr);

return 0;

}

在这个例子中,我们使用了`strcpy`函数,它是C标准库中的一个函数,用于将源字符串的内容复制到目标字符数组中。注意,目标数组必须有足够的空间来容纳源字符串,包括空字符'\0'。

如果你想要将字符串中的每个字符单独存储到数组中(例如,将"Hello"转换为{'H', 'e', 'l', 'l', 'o', '\0'}),你可以使用循环来实现:


```c
#include <stdio.h>

int main() {
    char str[] = "Hello";  // 原始字符串
    char arr[6];  // 目标数组,大小应比原始字符串多1,以容纳空字符'\0'

    // 使用循环将字符串的每个字符复制到数组
    for (int i = 0; str[i] != '\0'; i++) {
        arr[i] = str[i];
    }
    arr[i] = '\0';  // 添加空字符以标记字符串的结束

    // 打印数组内容
    for (int i = 0; arr[i] != '\0'; i++) {
        printf("%c ", arr[i]);
    }
    printf("\n");

    return 0;
}

在这个例子中,我们使用了两个循环,第一个循环用于将字符串的每个字符复制到数组中,第二个循环用于打印数组的内容。