问题描述
- c新手问题,求大神帮帮忙(?_?)
- int?read_line(char?str[]?int?n)
{
int?chi=0;
while((ch=getchar())?!=?'n')
if(i<n)
str[i++]=ch;
str[i]=''; /*terminates?string*/
return?i; ????/*number?of?characters?stored*/
}
这个函数中当需要读入的字符比较多时(超过n),结束时的str[i]=''不合理的话,这条语句该怎么修改啊?
解决方案
没有什么好办法,你可以动态分配: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]='';
时间: 2024-10-02 19:05:39