c语言中的字符串
字符串在c语言中的含义
- c语言中没有为字符串设置单独的数据类型,而是通过字符数组实现的。定义字符串的语法:char str[n] = “”,其中n可以不用填写让编译器自己取计算字符数组有几个字符数。
char str[10] = "hello";
char str1[] = "c language";
char *str2 = "Java";
字符串API
- strcpy(dest,src) 字符串赋值或复制,特点是不安全,内部没有做边界判断。
- strncpy(dest,src,n) 指定复制的字符数量来进行字符串赋值或复制,特点是安全,不会溢出字符串边界。
- strcat(dest,src) 字符串拼接,将src全部拼接到dest。拼接的过程中可能导致最终字符数超过dest的最大容量,出现溢出情况,这个时候多余的部分会复制到dest的相邻其他内存区,这样是不安全的。
- strncat(dest,src,n) 指定拼接src中n个字符到dest尾部。其中n必须保证最后拼接的字符数量不超过dest的最大容量。
- strcmp(s1,s2) 字符串比较,特点比较的是整个字符串。
- strncmp(s1,s2,n) n表示比较的字符数量,也可以理解为字符比较的结束位置。
char *strcpy1(char *dest, const char *src)
{
char *p = dest;
while (*dest++ = *src++);
return p;
}
char *strncpy1(char *dest, const char *src, size_t n)
{
size_t count = 0;
char *p = dest;
while (count < n)
{