簡體   English   中英

在C中打印和使用數組元素

[英]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()讀取用戶輸入的字符。
  • 檢查輸入。 如果它是換行符(用戶按Enter鍵),則循環完成。
  • 否則,將字符存儲在數組中並保持循環。
  • 在字符串末尾添加一個空終止符\\0
  • 打印字符串。

提示:當事先不知道迭代次數時,例如在這種情況下,應使用whiledo-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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM