![](/img/trans.png)
[英]How to input n strings in C (n is entered by the user) without allocating n spaces?
[英]How to input an integer array without spaces or '\n'?
我想輸入一個整數數組而不給空格。
例如:032146548,每個整數應分別存儲在數組中,
i.e a[0]=0,a[1]=3,a[2]=2 and so on.
我怎樣才能做到這一點 ?
我認為說“每個數字”更清楚,因為一旦知道字符序列032146548
代表多個字符,就完全不知道它代表多少個“整數”(通常的做法是“一個”)。
最簡單的方法是將其讀為一串數字,然后通過減去'0'
將每個數字轉換為對應的整數:
char line[12];
unsigned int a[10];
if(fgets(line, sizeof line, stdin) != NULL)
{
const size_t digits = strlen(line) - 1;
for(size_t i = 0; i < sizeof a; ++i)
{
if(i < digits && isdigit((unsigned int) line[i]))
a[i] = line[i] - '0';
else
a[i] = 0;
}
}
如果您要從文件中讀取文件,請使用此文件,
int i=0;
while(scanf("%1d",&a[i])==1)
{
i++;
}
如果您知道有多少輸入,請使用此選項
for(int i=0;i<inputLength;i++)
{
scanf("%1d",&a[i]);
}
#include <stdio.h>
int main(){
int a[16];
int i, j, stat;
char ch[2] ={0};
for(i=0;i<16;++i){
if(1!=(stat=scanf("%1d%1[^0-9]", &a[i], ch))){
if(stat==2)
++i;
break;
}
}
for(j=0;j<i;++j)
printf("%d ", a[j]);
printf("\n");
return 0;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.