LinuxC字符串函数strlen()、strcat()、strncat()、
strcmp。。。
strlen(返回字符串长度)
表头⽂件#include <string.h>
定义函数size_t strlen(const char *s);
函数说明strlen()⽤来计算指定的字符串s的长度,不包括结束字符"\0"。
返回值返回字符串s的字符数。
范例#include <stdio.h> #include <string.h> int main(int argc, char **argv) { char *str = "12345678"; printf("str length = %d\n", 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\n", a); printf("after strcat() : %s\n", 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\n", a); printf("after strncat() :%s\n", 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\n", strcmp(a, b)); printf("strcmp(a,c) : %d\n", strcmp(a, c));
printf("strcmp(a,d) : %d\n", strcmp(a, d)); return 0; }
执⾏strcmp(a,b) : 32 strcmp(a,c) : -31 strcmp(a,d) : 0
strcpy(拷贝字符串)
表头⽂件#include <string.h>
字符串拷贝函数strcpy作用
定义函数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\n", a); printf("after strcpy() :%s\n", strcpy(a, b)); return 0; }
执⾏before strcpy() :string(1) after strcpy() :string(2)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。