我正在用C开发一个应用程序,它要求我用一系列字符构建一个字符串。字符通过:ch = fgetc(in_file);接收,可以是大写字母,也可以是小写字母。我希望能够获取一系列字符(如“b u N N N y”)并将它们组合成一个字符串,以便打印、存储到另一个文件中或与另一个字符串(如“buNny”)进行比较。我怎么能用C呢?

最佳答案

似乎您可以做的是分配一个char数组并将char放入其中,跟踪缓冲区中的位置,以便知道下一个在哪里。(如果在添加每个字符后字符串需要是有效的字符串,而不仅仅是在完成所有操作时,请不要忘记在末尾保留\0。)您需要跟踪char数组的大小,以便通过比较您的位置和大小来判断它何时满。当它太满时,将它重新定位到更大的尺寸并继续。
一个常见的做法是每次都将缓冲区的大小增加一倍,这样就可以使需要重新分配的次数相对较少(与字符串的总长度相比)。当然,为缓冲区大小选择一个好的初始值会有很大帮助。

10-07 13:35
查看更多