试图在C中打印字符数组

Har*_*rsh 0 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();
}
Run Code Online (Sandbox Code Playgroud)
Input: Bangalore is in India
Output: Bangalore
Run Code Online (Sandbox Code Playgroud)

有什么建议?

Jon*_*ler 5

使用时scanf() ,%s格式会跳过前导空白区域,然后扫描非白色空格字符并停在输入行的下一个空白区域.

这意味着只Bangalore读取,所以只Bangalore打印.

如果你想要一整行输入,你应该使用fgets().

您还应该从编译器收到有关打印代码的警告.您可能希望在没有循环的情况下使用它:

printf("%s\n", str);
Run Code Online (Sandbox Code Playgroud)

或者在循环中:

printf("%c", str[i]);
Run Code Online (Sandbox Code Playgroud)

虽然这会更快:

putchar(str[i]);
Run Code Online (Sandbox Code Playgroud)

你需要担心在最后(putchar('\n');循环之后)添加换行符.