如何在C中输入由新行分隔的两个字符串

Ara*_*kan 1 c arrays string multidimensional-array

如何输入由新行分隔的2个字符串?

我的问题:

首先,我需要提供需要多少字符串,然后我需要获取这些字符串然后显示它.

我试过这个:

码:

#include <stdio.h>
#include <string.h>

int main()
{

    int n,i = 0;
    scanf("%d", &n);
    char arr[n][100];
    for(int i = 0; i < n; i++)
    {
        scanf("%[^\n]s", arr[i]);
    }

    for(int i = 0; i < n; i++)
    {
        printf("%s\n", arr[i]);
    }

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我的意见是:

2 I am
Aravind
Run Code Online (Sandbox Code Playgroud)

我的输出是:

I am
þ
Run Code Online (Sandbox Code Playgroud)

第一行我得到了正确但第二行显示了一些垃圾值.帮我解决这个问题.

Som*_*ude 7

你有两个主要问题:

  1. "%["格式收盘结束"]",应该是没有"s"底.

  2. "%["格式不跳过前导空间,像换行,这将是你读的第一线后存在.

通过使用fgets读取整行来轻松解决这两个问题.