程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> 編程c語言-c新手問題,求大神幫幫忙(ಥ_ಥ)

編程c語言-c新手問題,求大神幫幫忙(ಥ_ಥ)

編輯:編程綜合問答
c新手問題,求大神幫幫忙(ಥ_ಥ)

int read_line(char str[], int n)
{
int ch,i=0;
while((ch=getchar()) != '\n')
if(i<n)
str[i++]=ch;
str[i]='\0'; /*terminates string*/
return i;     /*number of characters stored*/
}
這個函數中當需要讀入的字符比較多時(超過n),結束時的str[i]='\0'不合理的話,這條語句該怎麼修改啊?

最佳回答:


 沒有什麼好辦法,你可以動態分配:
int n = 100;
char *str = new char[100]; 
while((ch=getchar()) != '\n')
{
if(i>n)
{
    n *= 2;
        char * str2 = new char[n * 2];
        memcpy(str2, str, 0, n / 2);
        delete str[];
        str=str2;
}
str[i++]=ch;

}
str[i]='\0';
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved