• Linux C 字符串函数 strlen()、strcat()、strncat()、strcmp()、strncmp()、strcpy()、strncpy() 详解


      strlen(返回字符串长度)

    表头文件

    #include <string.h>

    定义函数

    size_t strlen(const char *s);

    函数说明

    strlen()用来计算指定的字符串s的长度,不包括结束字符""。

    返回值

    返回字符串s的字符数。

    范例

    #include <stdio.h>
    #include <string.h>
    
    int main(int argc, char **argv)
    {
    	char *str = "12345678";
    	printf("str length = %d
    ", strlen(str));
    
    	return 0;
    }
    

    执行

    str length = 8
      strcat(连接两字符串)

    表头文件

    #include <string.h>

    定义函数

    char *strcat (char *dest,const char *src);

    返回值

    返回参数dest的字符串起始地址

    范例

    #include <stdio.h>
    #include <string.h>
    
    int main(int argc, char **argv)
    {
    	char a[30] = "string(1)";
    	char b[] = "string(2)";
    	printf("before strcat() : %s
    ", a);
    	printf("after strcat() : %s
    ", strcat(a, b));
    
    	return 0;
    }
    

    执行

    before strcat() : string(1)
    after strcat() : string(1)string(2)
      strncat(连接两字符串)

    表头文件

    #inclue <string.h>

    定义函数

    char * strncat(char *dest, const char *src, size_t n);

    函数说明

    strncat()会将参数src字符串拷贝n个字符到参数dest所指的字符串尾。第一个参数dest要有足够的空间来容纳要拷贝的字符串。

    返回值

    返回参数dest的字符串起始地址。

    范例

    #include <stdio.h>
    #include <string.h>
    
    int main(int argc, char **argv)
    {
    	char a[30] = "string(1)";
    	char b[] = "string(2)";
    	printf("before strnact() :%s
    ", a);
    	printf("after strncat() :%s
    ", strncat(a, b, 6));
    
    	return 0;
    }
    

    执行

    before strnact() :string(1)
    after strncat() :string(1)string
      strcmp(比较字符串)

    表头文件

    #include <string.h>

    定义函数

    int strcmp(const char *s1, const char *s2);

    函数说明

    strcmp()用来比较参数s1和s2字符串。字符串大小的比较是以ASCII 码表上的顺序来决定,此顺序亦为字符的值。strcmp()首先将s1第一个字符值减去s2第一个字符值,若差值为0则再继续比较下个字符,若差值不为0则将差值返回。例如字符串"Ac"和"ba"比较则会返回字符"A"(65)和'b'(98)的差值(-33)。

    返回值

    若参数s1和s2字符串相同则返回0。s1若大于s2则返回大于0的值。s1若小于s2则返回小于0 的值。

    范例

    #include <stdio.h>
    #include <string.h>
    
    int main(int argc, char **argv)
    {
    	char *a = "aBcDeF";
    	char *b = "AbCdEf";
    	char *c = "aacdef";
    	char *d = "aBcDeF";
    
    	printf("strcmp(a,b) : %d
    ", strcmp(a, b));
    	printf("strcmp(a,c) : %d
    ", strcmp(a, c));
    	printf("strcmp(a,d) : %d
    ", strcmp(a, d));
    
    	return 0;
    }
    

    执行

    strcmp(a,b) : 32
    strcmp(a,c) : -31
    strcmp(a,d) : 0
      strcpy(拷贝字符串)

    表头文件

    #include <string.h>

    定义函数

    char *strcpy(char *dest, const char *src);

    函数说明

    strcpy()会将参数src字符串拷贝至参数dest所指的地址。

    返回值

    返回参数dest的字符串起始地址。

    附加说明

    如果参数dest所指的内存空间不够大,可能会造成缓冲溢出(buffer Overflow)的错误情况,在编写程序时请特别留意,或者用 strncpy() 来取代。

    范例

    #include <stdio.h>
    #include <string.h>
    
    int main(int argc, char **argv)
    {
    	char a[30] = "string(1)";
    	char b[] = "string(2)";
    	printf("before strcpy() :%s
    ", a);
    	printf("after strcpy() :%s
    ", strcpy(a, b));
    
    	return 0;
    }
    

    执行

    before strcpy() :string(1)
    after strcpy() :string(2)
  • 相关阅读:
    面试-Hash是怎么实现的?
    教程-在Delphi中怎么查看是否有内存泄漏(Delphi2007)+WIN7
    面试-SizeOf一个对象会得到什么?
    Unity-Animator深入系列---录制与回放
    Animation.Sample用法介绍
    Unity-Animator深入系列---StateMachineBehaviour状态机脚本学习
    Unity-Animator深入系列---deltaPosition&deltaRotation
    Unity-Animato深入系列---FloatValue阻尼
    Animation在每一帧中的执行顺序测试
    Unity脚本在层级面板中的执行顺序测试2
  • 原文地址:https://www.cnblogs.com/52php/p/5724382.html
Copyright © 2020-2023  润新知