C 在数组中存储输入的字符
我必须在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
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