RT,我自己写了一个字符串快读,采用的是char*
类型,动态开空间(小写)
void stread(char *&s,int &len)
{
delete []s;
len = 0;
s = new char[5];
char c = getchar();
while(c < 'a' or c > 'z')
c = getchar();
while(c >= 'a' and c <= 'z')
{
s = new char;
s[++len] = c;
c = getchar();
}
// for(int i = 1;i <= len;i++)
// cout << s[i];
}
我在快读的读取过程中读取的字符都是正确的,但是统一输出时却会乱码,只有最后一个字符是对的
所以我怀疑读取过程中的newchar
出现了问题(有可能是在char*
第一位增加了一个char
类型的空间)
我并不特别知道指针数组的空间增加逻辑,所以出来问一下
望解答