字符串

来源:互联网 发布:广告机发布软件 编辑:程序博客网 时间:2024/06/05 11:58

在c语言中,双引号引用的单个或多个字符是一种字符串字面量
- 存储于程序的全局只读存储区
- 本质为字符数组,编译器自动在结尾加上’\0’字符

char ca[]={'H','e','l','l','o'};编译器不会在末尾加上'\0'字符,输出不确定char ca[]={'H','e','l','l','\0'};正确char ss[]="Hello,World!";char* str="Hello,World!";char s[] = "Hello\0world";printf("%d\n",sizeof(s));等于多少呢12//包括最后的'\0'的结束符

snprintf()函数本身是可变参数函数:
int snprintf(char* buffer, int buf_size, const char* format,…)
当函数只有三个参数时,如果第三个参数没有包含格式化信息,函数调用没有问题;相反,如果第三个参数包含了格式化信息,但缺少后续对应参数,则程序行为不确定
char buf[10] = {0};
char src[]=”hello %s”;//出现格式化信息
snprintf(buf,szieof(buf),src);
printf(“buf = %s\n”,buf);//行为不确定

#define STR "Hello, \0D.T.Software\0"//编译器总是会在字符串字面量的末尾加'\0'结束符int strcmp(const char *s1,const char *s2);比较两个字符串是否相同

字符串之间的相等比较需要用strcmp完成
不可直接用==进行字符串直接的比较(指向字符串对应字符数组指针可以直接用==)