C语言: 如何将一个输入字符串转为数组
时间: 2024-05-16 16:12:10 浏览: 248
您可以使用 C 语言中的循环来逐个读取字符串中的每个字符,并将它们存储到数组中。具体实现方法可以参考如下代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100]; //定义一个字符串变量
int len, i, arr[100]; //定义长度、循环变量和数组
printf("请输入一个字符串:");
scanf("%s", str); //读取输入的字符串
len = strlen(str); //计算字符串长度
//循环读取字符串中的每个字符并存储到数组中
for (i = 0; i < len; i++) {
arr[i] = str[i];
}
//输出数组中存储的字符
printf("转换后的数组为:\n");
for (i = 0; i < len; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
这样就可以把一个输入的字符串转换为一个整型数组了。
相关问题
C语言解决将用书输入的字符串转为二维数组的完整代码
以下是一个将用户输入的字符串转换成二维数组的完整C语言代码,具体实现过程如下:
1. 用户输入一个字符串,可以使用scanf()函数或gets()函数,这里我使用gets()函数,因为它可以读取包含空格的字符串。
2. 接下来,我们需要将输入的字符串按照空格分割成单独的字符,可以使用strtok()函数实现。该函数将字符串分割成一个个单独的令牌,每次调用该函数时,它返回下一个令牌。
3. 将分割后的字符存储到一个二维数组中。
```c
#include <stdio.h>
#include <string.h>
#define MAX_SIZE 100
int main() {
char input[MAX_SIZE];
char *token;
char array[MAX_SIZE][MAX_SIZE];
int row = 0;
printf("Enter a string: ");
gets(input);
token = strtok(input, " ");
while(token != NULL) {
strcpy(array[row], token);
row++;
token = strtok(NULL, " ");
}
// Print the 2D array
for(int i = 0; i < row; i++) {
printf("%s\n", array[i]);
}
return 0;
}
```
上述代码将用户输入的字符串按照空格分割成单独的字符,并将这些字符存储到一个二维数组中,最后打印出该二维数组。
用C语言写出一个将字符串转为二进制数组的函数
下面是一个将字符串转为二进制数组的函数的C语言代码实现:
```c
void str2bin(char* str, int len, int* bin) {
int i, j;
for (i = 0; i < len; i++) {
for (j = 0; j < 8; j++) {
bin[i * 8 + j] = (str[i] >> (7 - j)) & 1;
}
}
}
```
其中,`str`为输入的字符串,`len`为字符串的长度,`bin`为输出的二进制数组。函数会将字符串中每个字符转换为8位二进制数,存储到`bin`中。由于C语言中不支持返回动态数组,因此我们使用传入指针的方式来输出结果。
使用示例:
```c
#include <stdio.h>
int main() {
char str[] = "hello, world!";
int len = sizeof(str) - 1; // 减去字符串末尾的'\0'
int bin[len * 8];
str2bin(str, len, bin);
int i;
for (i = 0; i < len * 8; i++) {
printf("%d", bin[i]);
}
printf("\n");
return 0;
}
```
输出结果为:
```
0110100001100101011011000110110001101111001000000111011101101111011100100110110001100100
```
阅读全文