Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 在数组中存储输入的字符_C_Arrays_String - Fatal编程技术网

C 在数组中存储输入的字符

C 在数组中存储输入的字符,c,arrays,string,C,Arrays,String,我必须在C中输入chars。输入形式如下: 'f' 'g' 'd' 'b' '2' '3' 每行有一对两个字符,我的任务是将它们存储在两个不同的数组中。一个数组将存储{'f'、'd'、'2'},另一个数组将存储{'g'、'b'、'3'} 我的代码是: for(i=0;i<n;i++){ scanf(" %c",&arr1[i]); scanf("%c",&arr2[i]); } for(i=0;i您的代码看起来很好,只是第二秒内scanf

我必须在C中输入
char
s。输入形式如下:

 'f'  'g'
 'd'  'b'
 '2'  '3'
每行有一对两个字符,我的任务是将它们存储在两个不同的数组中。一个数组将存储{'f'、'd'、'2'},另一个数组将存储{'g'、'b'、'3'}

我的代码是:

 for(i=0;i<n;i++){ 
   scanf(" %c",&arr1[i]); 
   scanf("%c",&arr2[i]);
 }

for(i=0;i您的代码看起来很好,只是第二秒内
scanf
%c
前面需要空间:

for(i=0;i<n;i++){ 
   scanf(" %c",&arr1[i]); 
   scanf(" %c",&arr2[i]);
}  

for(i=0;i.

您的代码看起来很好,只是第二次扫描时在
%c
之前需要空间:

for(i=0;i<n;i++){ 
   scanf(" %c",&arr1[i]); 
   scanf(" %c",&arr2[i]);
}  

for(i=0;i.

您的代码看起来很好,只是第二次扫描时在
%c
之前需要空间:

for(i=0;i<n;i++){ 
   scanf(" %c",&arr1[i]); 
   scanf(" %c",&arr2[i]);
}  

for(i=0;i.

您的代码看起来很好,只是第二次扫描时在
%c
之前需要空间:

for(i=0;i<n;i++){ 
   scanf(" %c",&arr1[i]); 
   scanf(" %c",&arr2[i]);
}  

for(i=0;i.

如果您的输入是
f
,则按enter键,然后按
g
——然后您的第二次
scanf
调用将使用字母之间的
新行

scanf(“%c”,…
将读取下一个字符(这包括空格,因此可能会读取空白字符)。
scanf(“%c”)将跳过空白并读入下一个非空白字符


注意:新行(
'\n'
)也被视为空白。

如果您的输入是
f
,则按enter键,然后按
g
——然后您的第二次
scanf
调用将使用字母之间的
新行

scanf(“%c”,…
将读取下一个字符(这包括空格,因此可能会读取空白字符)。
scanf(“%c”)将跳过空白并读入下一个非空白字符


注意:新行(
'\n'
)也被视为空白。

如果您的输入是
f
,则按enter键,然后按
g
——然后您的第二次
scanf
调用将使用字母之间的
新行

scanf(“%c”,…
将读取下一个字符(这包括空格,因此可能会读取空白字符)。
scanf(“%c”)将跳过空白并读入下一个非空白字符


注意:新行(
'\n'
)也被视为空白。

如果您的输入是
f
,则按enter键,然后按
g
——然后您的第二次
scanf
调用将使用字母之间的
新行

scanf(“%c”,…
将读取下一个字符(这包括空格,因此可能会读取空白字符)。
scanf(“%c”)将跳过空白并读入下一个非空白字符


注意:新行(
'\n'
)也被视为空白。

我的意思是,既然您告诉我们输入的形式与您向我们展示的一样,显然有
'
和空格需要丢弃。如果是这样,就好像您必须解析输入一样

如果您确定输入的形式与您描述的相同,那么一种方法是:

  • 阅读并放弃,直到第一个单引号,然后也是单引号
  • 读取并存储以下字符
  • 阅读并放弃以下单引号
  • 再这样做一次
在每个循环上。我上面所描述的,可以通过以下由单个
scanf
调用组成的块来实现,其中格式字符串是重要的部分:

for ( ... ) {
    scanf( "%*[^']'%c'%*[^']'%c'", &arr1[i], &arr2[i] );
}
这假设输入的形式与问题上显示的一样,在单引号内有一个字符,任意间距,诸如此类

  • %*[^']'
    零件处理上面列表中的第一个项目符号
  • %c
    和成对的
    &arr1[i]
    执行第二个
  • 第三个
  • 其余的做第四个

我知道,根据询问者的评论,这并不是他们想要的,但我觉得至少应该有一个答案来回答问题所说的内容,而不仅仅是询问者的想法,希望它能帮助任何人。

我的意思是,既然你告诉我们,输入的内容是你向我们展示的形式,那么显然是有问题的e
s和要丢弃的空格。如果是这样,就好像必须解析输入一样

如果您确定输入的形式与您描述的相同,那么一种方法是:

  • 阅读并放弃,直到第一个单引号,然后也是单引号
  • 读取并存储以下字符
  • 阅读并放弃以下单引号
  • 再这样做一次
在每个循环上。我上面所描述的,可以通过以下由单个
scanf
调用组成的块来实现,其中格式字符串是重要的部分:

for ( ... ) {
    scanf( "%*[^']'%c'%*[^']'%c'", &arr1[i], &arr2[i] );
}
这假设输入的形式与问题上显示的一样,在单引号内有一个字符,任意间距,诸如此类

  • %*[^']'
    零件处理上面列表中的第一个项目符号
  • %c
    和成对的
    &arr1[i]
    执行第二个
  • 第三个
  • 其余的做第四个

我知道,根据询问者的评论,这并不是他们想要的,但我觉得至少应该有一个答案来回答问题所说的内容,而不仅仅是询问者的想法,希望它能帮助任何人。

我的意思是,既然你告诉我们,输入的内容是你向我们展示的形式,那么显然是有问题的e
s和要丢弃的空格。如果是这样,就好像必须解析输入一样

如果您确定输入的形式与您描述的相同,那么一种方法是:

  • 阅读并放弃,直到第一个单引号,然后也是单引号
  • 读取并存储以下字符
  • 读并丢弃th