字符串转char二维数组 c语言
时间: 2023-07-11 18:12:56 浏览: 131
可以使用字符串处理函数 `strcpy` 将字符串逐个字符地复制到一个二维字符数组中。例如,如果有一个字符串 `str` 和一个二维字符数组 `arr[rows][cols]`,可以使用以下代码将字符串复制到数组中:
```c
char str[] = "hello world";
char arr[3][5];
int i, j, k = 0;
for (i = 0; i < 3; i++) {
for (j = 0; j < 5; j++) {
if (k < strlen(str)) {
arr[i][j] = str[k];
k++;
}
}
}
```
这个例子中,我们将字符串 `"hello world"` 复制到一个 3x5 的二维字符数组中。在循环中,我们逐个字符地将字符串复制到数组中,直到字符串的结尾。如果数组的大小不足以容纳整个字符串,那么只会将部分字符串复制到数组中。
相关问题
不一个个字符输入字符串转char二维数组 c语言
可以使用 scanf 函数来读取字符串,并使用一个字符指针数组来存储每个字符串。以下是一个示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_LEN 100
int main() {
char *str[MAX_LEN]; // 定义字符指针数组
int n;
printf("请输入字符串的个数:");
scanf("%d", &n);
// 读取每个字符串并存储到字符指针数组中
for (int i = 0; i < n; i++) {
char temp[MAX_LEN];
scanf("%s", temp);
str[i] = (char*)malloc((strlen(temp)+1) * sizeof(char)); // 动态分配内存
strcpy(str[i], temp);
}
// 打印字符指针数组中的每个字符串
for (int i = 0; i < n; i++) {
printf("第 %d 个字符串是:%s\n", i+1, str[i]);
free(str[i]); // 释放内存
}
return 0;
}
```
在上面的示例中,我们首先使用 scanf 函数读取字符串的个数,然后循环读取每个字符串并将其存储到字符指针数组中。在存储字符串时,我们使用了动态内存分配来保证每个字符串都有足够的空间存储。最后,我们遍历字符指针数组并打印每个字符串,并释放动态分配的内存。
不一个个字符输入字符串转char二维数组 c语言 字符串里用空格分开每个数据
可以使用C语言中的strtok函数将字符串按照空格分割成不同的数据,然后将这些数据存储到char二维数组中。以下是一个示例代码:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char str[] = "1 2 3 4 5"; // 字符串
char data[5][2]; // 存储数据的char二维数组
char *token; // 分割字符串时使用的指针
int i = 0, j = 0;
token = strtok(str, " "); // 将字符串按照空格分割
while(token != NULL)
{
data[i][j++] = *token; // 将分割出来的数据存入char二维数组中
token = strtok(NULL, " "); // 继续分割字符串
if(j == 2) // 如果当前行已经存满,则进入下一行
{
i++;
j = 0;
}
}
// 输出存储的数据
for(i = 0; i < 5; i++)
{
for(j = 0; j < 2; j++)
{
printf("%c ", data[i][j]);
}
printf("\n");
}
return 0;
}
```
运行结果为:
```
1
2
3
4
5
```
阅读全文