zoukankan      html  css  js  c++  java
  • snprintf和string操作函数

    首先,使用场景不同。除了snprintf之外,其他的都是用于两个字符串之间进行比较、拷贝、拼接等操作的,而snprintf最主要是,要把一个用户变量按照一个format打印到字符串中。
    其次,函数参数类型不同。除了snprintf之外,其他的都是定长参数,而snprintf是接受变长参数的。
    最后,定义位置也不同,除了snprintf位于stdio.h之外,其他的都是string.h中的
    因此,snprintf和其他的一定不是一类的,单从头文件的划分就能看出来。

    snprintf();//

    #include <stdio.h>

    函数返回

    若成功则返回欲写入的字符串长度,若出错则返回负值。

    信息说明

    strcpy() sprintf() strcat() 存在安全隐患, 其对应的安全版为:

    strncpy() snprintf() strncat()

    snprintf(s, 100, "%.*S", 3, "abcd");

    s的值为abc

    %.*s 表示有两项, 第一项指定了长度,第二项则是%s的内容,所以取前三位

     glibc的头文件划分绝大多数都很有讲究。
    strcpy
    //

    原型声明:extern char *strcpy(char* dest, const char *src);

    头文件:#include <string.h> 和 #include <stdio.h>

    功能:把从src地址开始且含有结束符的字符串复制到以dest开始的地址空间

    说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。

    返回指向dest的指针

     
    strncpy
    安全版本for strcpy,没有作为保证--string.h中仅有
    strcat
    将两个char*连接,string.h cstring in C++
    strtok
    char *strtok(char s[], const char *delim)
    分割string以 delim
     
    strncat

    char *strncat(char * s1,const char * s2.size_t n);

    s2字符串中只有前n个字符被追加到s1字符串,复制过来的s2字符串的第一个字符覆盖了

    s1字符串结尾的空字符。s2字符串中包括s2[n]在内的字符都不会被复制,并且追加

    一个空字符到所得结果后面。返回值是s1

  • 相关阅读:
    Http和Socket连接区别
    解决TCP网络传输“粘包”问题
    c# 获取MAC IP TCP列表
    《你不常用的c#之四》:Array的小抽屉ArraySegment
    《你不常用的c#之三》:Action 之怪状
    《你不常用的c#之二》:略谈GCHandle
    c#中var关键字用法
    Combotree--别样的构建层级json字符串
    一周代码秀之[11.18~11.24 linq2xml面向对象]
    这个季节的这些时候
  • 原文地址:https://www.cnblogs.com/fenglongyu/p/7619943.html
Copyright © 2011-2022 走看看