C语言开发笔记

一,snprintf拼接字符串

1,原来字符串有值,后面拼接一个字符串

#include <stdio.h>
#include <stdlib.h>

int main()
{
   char ori[100] = "I love ";
   char *afterStr = "you";
   snprintf(ori+strlen(ori),strlen(afterStr)+1,"%s",afterStr);
   printf("%s\n",ori);
   return 0;
}

2,直接拼接两个字符串到一个变量

#include <stdio.h>
#include <stdlib.h>

#define Length(str) sizeof(str)/sizeof(str[0])

int main()
{
   char ori[100] = {0};
   snprintf(ori,sizeof(ori)-1,"%s%s","I love ","you");
   printf("%s\n",ori);
   return 0;
}

上述运行结果:

I love you

二,文件拷贝fopen,fclose,fgetc,fputc,ferror

文件操作涉及到文件打开,关闭,读文件字符,写文件,以及异常处理
以下代码实现的功能是将oriDoc.txt文件里的内容拷贝到另外一个文件里

#include <stdio.h>
#include <stdlib.h>

int main()
{
   FILE *freadOri = NULL;
   FILE *fwriteAfter = NULL;
   char ch = 0;
   freadOri = fopen("./oriDoc.txt","r");
   if(freadOri == NULL)
   {
      printf("open file fail"); //异常处理:打开文件出错
      return 0;
   }
   fwriteAfter = fopen("./afterDoc.txt","w");
   if(fwriteAfter == NULL)
   {
      printf("open file fail");
      if(fclose(freadOri) == NULL) //异常处理:关闭文件出错
        return 0;
      return 0;
   }
   ch = fgetc(freadOri);
   while( ch != EOF && ferror(freadOri) == 0)
   {
      fputc(ch,fwriteAfter);
      if(ferror(fwriteAfter))//异常处理:文件操作出错,出错时返回非零值,否则返回零值
      	return 0;
      ch = fgetc(freadOri);
   }
   fclose(freadOri);
   fclose(fwriteAfter);
   return 0;
}

三,C语言中各类型变量所占字节数

在这里插入图片描述
首先来看字符类型,这里单指char , char变量在内存中存储的是字符对应的ASCII码值。所以长度也是固定的,不管在哪种编译器下,均为1个字节。

再来看 浮点类型,C中的浮点类型有俩种,float和double,与整数不同的是,浮点数的长度适中的固定的,float占用4个字节,double占用8个字节。

最后来看 整型类型,查阅资料后发现虽然16位、32位或者64位的机子各种类型并不一样,但有几条规则(ANSI/ ISO制定):

  1. short 至少占用2个字节
  2. int 建议为一个机器字长,32位环境下为4字节,64位环境下为8字节
  3. short 的长度不能大于int, long 的长度不能小于int
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ftzchina

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值