是否有另一种截断字符串的方法?

T.T*_*.T. 8 c string char

char out_file_name[30];  


ogSize = strlen(FileName); //i.e. - FileName_anylength.log (always.log)
ogSize -= strlen(IN_FILE_SUFFIX); //amount of chars before .log

strncpy( out_file_name, FileName, ogSize ); //out_file_name now is FileName_anylength (without the .log)  
Run Code Online (Sandbox Code Playgroud)

这是最好的方法吗?

另外,我如何防范ogSize不会超过30个字符,因为它来自用户输入?

谢谢.

jke*_*ian 17

使用C风格的字符串,您只需设置要截断的字符即可\0.

关于你的第二个问题,基本上你检查.或者根据字符串大小分配尽可能多的内存(请记住包含空间\0).