如何用C语言实现输入一串数字时不用空格隔开,而数组元素一一储存这串数字的每位
时间: 2023-06-16 09:07:09 浏览: 254
可以使用字符数组来存储这串数字的每一位,具体实现如下:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_LENGTH 100 // 数组最大长度
int main() {
char input[MAX_LENGTH]; // 输入的字符串
int nums[MAX_LENGTH]; // 存储每一位数字的数组
int len, i;
printf("请输入一串数字:");
fgets(input, MAX_LENGTH, stdin); // 从标准输入读取字符串
len = strlen(input) - 1; // 计算输入的字符串长度,减去末尾的'\n'
for (i = 0; i < len; i++) {
nums[i] = input[i] - '0'; // 将字符转换为数字
}
printf("输入的数字为:");
for (i = 0; i < len; i++) {
printf("%d ", nums[i]); // 逐个输出数字
}
printf("\n");
return 0;
}
```
运行示例:
```
请输入一串数字:123456
输入的数字为:1 2 3 4 5 6
```
相关问题
c语言输入用空格隔开的10个数字作为数组
在 C 语言中,可以使用以下方法将输入的 10 个数字作为数组:
1. 先声明一个数组,如:
```
int arr[10];
```
2. 使用循环读入输入的数字,如:
```
for (int i = 0; i < 10; i++) {
scanf("%d", &arr[i]);
}
```
3. 在输入时使用空格隔开每个数字即可。
完整代码如下:
```
#include <stdio.h>
int main() {
int arr[10];
for (int i = 0; i < 10; i++) {
scanf("%d", &arr[i]);
}
return 0;
}
```
在程序运行时,可以输入 10 个数字,使用空格隔开,即可将这 10 个数字存储到数组 `arr` 中。
一个字符串有n组数字,用空格隔开,c语言编写程序用一个整形数组保存字符数组中的10组数字
可以先使用 `scanf` 函数读入字符串,然后使用 `strtok` 函数将字符串按照空格划分成多个子字符串,再将每个子字符串转换为整数保存到整形数组中。
具体实现代码如下:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_STR_LEN 100
int main() {
char input_str[MAX_STR_LEN];
int nums[10];
int i = 0;
// 读入字符串
printf("请输入带有数字的字符串,用空格隔开:\n");
fgets(input_str, MAX_STR_LEN, stdin);
// 按照空格分割字符串,并将每个子字符串转换为整数保存到整形数组中
char *token = strtok(input_str, " ");
while (token != NULL && i < 10) {
nums[i++] = atoi(token);
token = strtok(NULL, " ");
}
// 输出整形数组
printf("整形数组中的数字为:\n");
for (int j = 0; j < i; j++) {
printf("%d ", nums[j]);
}
printf("\n");
return 0;
}
```
示例输入:
```
1 2 3 4 5 6 7 8 9 10 11
```
示例输出:
```
整形数组中的数字为:
1 2 3 4 5 6 7 8 9 10
```