簡體   English   中英

嘗試在C中打印字符數組

[英]Trying to print character array in C

我正在嘗試在C中打印字符數組,但是如果出現任何空格,則無法打印該數組。 這是我的代碼:

int main() {
    char str[100];
    int len = 0;

    printf("Enter the string");
    scanf("%s", str);
    len = strlen(str);

    int i = 0;
    for (i = 0; i < len; i++) { 
       printf("%s", str[i]); 
    }    

    getch();
}

Input: Bangalore is in India
Output: Bangalore

有什么建議么?

使用scanf()%s格式會跳過前導空格,然后掃描非空格字符並在輸入行中的下一個空格處停止。

這意味着僅讀取Bangalore ,因此僅打印Bangalore

如果要輸入一整行,則應使用fgets()

您還應該從編譯器獲得有關打印代碼的警告。 您可能想不帶循環地使用它:

printf("%s\n", str);

或在循環內:

printf("%c", str[i]);

盡管這樣會更快:

putchar(str[i]);

並且您將需要擔心在循環末尾添加一個換行符( putchar('\\n'); )。

如果遇到空格或換行,則從終端讀取輸入將停止。 您可以做兩件事來獲得所需的東西

  1. 使用fgets,例如: fgets(str, 100, stdin)
  2. 告訴scanf而不是像scanf ("%[^\\n]%*c", str);這樣的換行符來讀取輸入scanf ("%[^\\n]%*c", str);

第二件事,如果要打印出字符數組,則必須使用%c

閱讀手冊頁

您需要%c而不是%s

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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