C 在不忽略空格的情况下扫描具有大小限制的字符串

C 在不忽略空格的情况下扫描具有大小限制的字符串,c,string,scanf,C,String,Scanf,我在将字符串扫描到每个字符串最大长度为256的矩阵中时遇到问题 它试过了,但没用,有人有办法吗 #include<stdio.h> #include<string.h> void main() { char* song[5][256]; for (int i = 0; i < 5; i++) scanf("%255[^\n]s", song[i]); } #包括 #包括 void main() { char*s

我在将字符串扫描到每个字符串最大长度为256的矩阵中时遇到问题

它试过了,但没用,有人有办法吗

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

void main()
{
    char* song[5][256];
    for (int i = 0; i < 5; i++)
        scanf("%255[^\n]s", song[i]);
}
#包括
#包括
void main()
{
char*song[5][256];
对于(int i=0;i<5;i++)
scanf(“%255[^\n]s”,宋[i]);
}
欢迎来到stackoverflow, 首先,我不确定您为什么要使用char*song[5][256],但您可以通过使用二维数组(即char-song[5][256])来实现所需的输出。此外,我还确定对类似矩阵的数组使用scanf函数总是会带来麻烦

#include<stdio.h>
int main()
{
    char s[5][256];
    for(int i=0;i<5;i++)
    {
        for(int j=0;j<256;j++)
        {       char c=getchar();
            if(c=='\n'||c== EOF)

            {   
                s[i][j]='\0';
                printf("\n");
                break;
            }
            if(j<255)
                s[i][j]=c;
            if(j==255)
                s[i][j]='\0';

        }
        printf("the given string  %d is:%s \n",i+1,s[i]);

    }
    return 0;

}
#包括
int main()
{
chars[5][256];

对于(int i=0;ia)
char*song[5][256];
应该是
char-song[5][256];
b)
%255[^\n]s
应该是
%255[^\n]”
(添加空格,删除s)…而
void main()
应该是
int main(void)
包括useless@WeatherVane您应该将其作为答案发布。除非对
“%[]s”
伟大的代码有一个公共dup!只有一些缩进问题,您应该将
char c=getchar();
更改为
int c=getchar();if(c==EOF | | c='\n'))
@KamilCuk谢谢,先生。太好了!但是
EOF
int
,而不是
char