C 在空白处写入字符数组
问题是在一行中输入n个元素,然后用c语言生成一个数组。输入的格式如下所示 输入: 15//元素数 1 4 2 3 5 6 x x x x 5 7//元素 我尝试使用scanf函数,但没有成功C 在空白处写入字符数组,c,C,问题是在一行中输入n个元素,然后用c语言生成一个数组。输入的格式如下所示 输入: 15//元素数 1 4 2 3 5 6 x x x x 5 7//元素 我尝试使用scanf函数,但没有成功 char* tree; int n; scanf("%d", &n); tree = (char*)malloc(sizeof(char) * n); for (int i = 0; i < n; i++) { scanf("%c", &
char* tree;
int n;
scanf("%d", &n);
tree = (char*)malloc(sizeof(char) * n);
for (int i = 0; i < n; i++)
{
scanf("%c", &tree[i]);
}
char*树;
int n;
scanf(“%d”和“&n”);
tree=(char*)malloc(sizeof(char)*n);
对于(int i=0;i
这个代码有什么问题
- 我也试过另一个版本
int*树;
int n;
scanf(“%d”和“&n”);
树=(int*)malloc(sizeof(int)*n);
对于(int i=0;i
但是我失败了,因为char“x”。您的程序很好,唯一的问题是您似乎有15个字符以空格分隔作为输入,但您读取了前8个字符加上它们之间的7个空格。只要纠正扫描
scanf(" %c", &tree[i]);
另外,由于n
将是一个小数字,我认为您可以安全地使用VLA
#include <stdio.h>
int main() {
int n;
scanf("%d", &n);
char tree[n];
for(int i = 0; i < n && scanf(" %c", &tree[i]) == 1; i++);
return 0;
}
#包括
int main(){
int n;
scanf(“%d”和“&n”);
字符树[n];
对于(inti=0;i
在的“1 4 4 2 3 5 6 x x x x 5 7”中大约有30个字符,而不是15个。尝试添加一个空格scanf(“%c”和&tree[i])代码>不扫描并保存空白。@chux,你说得对,我改变了
#include <stdio.h>
int main() {
int n;
scanf("%d", &n);
char tree[n];
for(int i = 0; i < n && scanf(" %c", &tree[i]) == 1; i++);
return 0;
}