簡體   English   中英

掃描具有大小限制的字符串而不忽略空格

[英]scanf a string with size limit without ignoring spaces

我在將字符串掃描到每個字符串最長為 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]);
}

歡迎來到stackoverflow,首先我不確定你為什么使用char *song[5][256],但是你可以通過使用二維數組來實現所需的輸出,即..char song[5][256] .而且我確信使用 scanf function 來處理類似矩陣的數組總是會帶來麻煩。

#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;

}

而且我還使用了兩個 for 循環,用於分配該數組的元素。現在代碼工作正常。我使用了你的 variale 名稱歌曲的 insted。 希望我回答了你的問題。

暫無
暫無

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

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