//字符串:被双引号引起来的一串叫字符串
//"abcde";
//"hello world"
//字符串数组 - 数组是一组同类型的元素
//字符串在结尾的位置隐藏了一个\0的字符
// \0是字符串的结束标志 零
#include <stdio.h>
int main()
{
char arr1[] = "abc";//这里的\0是隐藏的
char arr2[] = { 'a','B' ,'C','\0' };//这里需要手动添加/0,单个字符要用单引号
printf("%s\n", arr1);
printf("%s\n", arr2);// %s打印字符号
// %c打印单个字符
return 0;
}
求字符串长度
#include <stdio.h>
int main()
{
char arr1[] = "abc";//这里的\0是隐藏的
char arr2[] = { 'a','b' ,'c' };//这里需要手动添加/0,单个字符要用单引号
printf("%d\n",strlen(arr1));//打印出来的是正常长度3
printf("%d\n", strlen(arr2));//打印出来的是随机值
//如果在char中添加了\0则打印出来的数字为3
return 0;
}
int main()
{
int len = strlen("abc");//string length:字符串长度
printf("%d\n", len);
//妈的这里\n又搞错了,弄成/n了,找了半天错误
return 0;
解决方法
在转义字符的前面加\就行
#include <stdio.h>
int main()
{
printf("%s\n", "a\\na");//在转义字符的前面加\就行
return 0;
}
关于最后两个转义字符
#include <stdio.h>
int main()
{
printf("%c\n", '\130');//130的八进制是88
//X的ASCII码是88 因此结果是88
printf(" % c\n", '\x30');//代表30的十六进制48
//输出结果为0
printf(" %d\n", strlen("C:\test\328\test.c"));//长度为14
// \t \32 只能算作一个长度,而八进制中没有8,因此8不涵盖在内
return 0;
}