加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

转换整数以在strcat中使用

发布时间:2020-12-16 10:34:28 所属栏目:百科 来源:网络整理
导读:我试图通过for循环递增计数器来打开不同的文件,然后将该计数器附加到要打开的文件名,但我仍然坚持如何使用strcat来执行此操作.如果我理解正确,strcat需要2个字符串,但我的计数器是一个int.我怎样才能使它成为一个字符串? for(a = 1; a 58; a++) { FILE* inF
我试图通过for循环递增计数器来打开不同的文件,然后将该计数器附加到要打开的文件名,但我仍然坚持如何使用strcat来执行此操作.如果我理解正确,strcat需要2个字符串,但我的计数器是一个int.我怎样才能使它成为一个字符串?

for(a = 1; a < 58; a++) {
    FILE* inFile;
    int i;

    char filename[81];

    strcpy(filename,"./speeches/speech");
    strcat(filename,a);
    strcat(filename,".txt");

绝对不起作用,因为a是一个int.当我尝试将它转换为char时,因为从1开始并且到57,我得到所有错误的值,因为1处的char实际上不是数字1 ..我被卡住了.

解决方法

你不能将整数转换为字符串,这在C中是不可能的.

您需要使用显式格式化函数从整数构造字符串.我最喜欢的是snprintf().

一旦你意识到这一点,你也可以在一次调用中格式化整个文件名,并且根本不需要使用strcat()(性能相当差):

snprintf(filename,sizeof filename,"./speeches/speech%d",a);

将在filename中创建一个字符串,该字符串是通过将整数a的十进制表示附加到字符串而构造的.与printf()一样,格式化字符串中的%d告诉snprintf()要插入的数字.你可以用例如?d获得零填充三位数格式,依此类推.它非常强大.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读