通过获取字符来存储字符串

时间:2013-11-27 01:27:38

标签: c string char

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

1 个答案:

答案 0 :(得分:2)

看起来你可以做的就是分配一个char数组并将chars放入其中,跟踪你在缓冲区中的位置,这样你就知道下一个放在哪里。 (如果你的字符串在添加每个字符后需要是一个有效的字符串而不是只是在完成所有内容时,不要忘记在最后维护\0。)你需要跟踪你的char数组的大小所以你可以通过比较你所处的大小来判断它何时满了。当它太满时,将它重新分配到更大的尺寸并继续。

常见的做法是每次都将缓冲区的大小加倍 - 这样可以保持重新分配所需的次数相对较少(与字符串的总长度相比)。当然,为缓冲区大小选择一个好的初始值可以提供很多帮助。