[英]Print and use array element in C
所以我想做的是輸入一個數組,然后使用它的元素。 例如:
#include <stdio.h>
#include <string.h>
int main()
{
int s[100],i;
for(i=0; i < strlen(s); ++i)
{scanf("%d",&s[i]);}
printf("s[1] = %d",s[1];
}
如果輸入12345,我希望它返回s [1],即2。我知道如何打印整個數組,但是我只想要一個或多個元素,看來我想不出這個看似簡單的問題。
試試這個
char s[100],i;
scanf("%s",s);
for(i=0; i < strlen(s); ++i)
{
printf("s[%d] = %c", i, s[i]);
}
如果只需要一個輸入字符串,則可以嘗試以下操作:
char s[100];
fgets(s, sizeof(s), stdin);
並輸出如下內容:
for (i = 0; s[i]; i++) {
printf("%c\n", s[i];
}
這很可能是您想要的:
fgets()
讀取用戶輸入的字符。 \\0
。 提示:當事先不知道迭代次數時,例如在這種情況下,應使用while
或do-while
循環。 僅當知道迭代次數時,才應使用for
循環。
for(i=0; i < strlen(s); ++i)
使用未初始化的(不確定的)變量可能會產生令人驚訝的結果。 無論如何,您要在此處計算元素: sizeof s/sizeof *s
。
{scanf("%d",&s[i]);}
始終測試scanf
中分配了多少個元素。 那是您終止順便說一句的第二個條件。
另外,如果只想轉換一位數字,請使用字段長度: "%1d"
如果輸入12345,我希望它返回s [1],即2。我知道如何打印整個數組,但是我只想要一個或多個元素,看來我想不出這個看似簡單的問題。
看起來您想讀取一串數字 ,而不是數字 。 用這個:
char digits[100];
if(scanf("%99[0-9]", digits) != 1)
abort();
上面的字符串最多可以讀取99位數字,如果找不到數字,則中止。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.