[英]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.