void getString(String *S)
{
char chs;
int k=0;
fflush(stdin);
do
{
while((chs=getchar())!='\n'&&k<MAXSIZE)
{
S->ch[k]=chs;
++k;
}
S->ch[k]='\0';
S->Len=k;
}while(S->Len<2);
printf("字串是:");
if(S->ch[0]=='\0')
printf("空串");
else
{
puts(S->ch);
printf("串長度為:%d\n",S->Len);
}
system("pause");
}
(4)定義函式getsuing(Suming*S),用于動態輸入字串,采用getchar(函式單個字符性輸入,賦值給數
組S→sming的每個成員。輸入字串(長度不得超過)MAXSZE個字符,存盤在S->sming中,回車鍵
輸入結束。函式原型如下:
voidgestringSsming*S)∥建立一個新串
按這個要求修改,求大神解!
uj5u.com熱心網友回復:
參考getline(char s[],int MAXLINE)寫,教科書上有。uj5u.com熱心網友回復:
while((chs=getchar())!='\n'&&k<MAXSIZE)建議改成
while((chs=getchar())!='\n'&&k<MAXSIZE-1)
因為至少要給'\0'留一個字符空間
if(S->ch[0]=='\0')
printf("空串");
這個判斷是多余的吧,因為當k是0時,能從while (s->len > 2)的回圈中跳出來?
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/53613.html
標籤:C語言
下一篇:沒有匹配if的非法else
