1、字符串使用注意
#include <stdio.h>
int main()
{
char name[] = "itcast";
name[3] = 'H';
char name2[] = {'a','b'};
char name3[] = {'a','b','\0'}; /*
int size = sizeof(name);
printf("%d\n",size);//size=7;
*/
printf("%s\n",name );
printf("%s\n",name2 );//输出内容包括name,值为abitcHst,原因如下图,%s会从数组名name2首地址,开始输出字符,直到遇到’\0’结束
printf("%s\n",name3 );
printf("%s\n",&name2[1]);//与占位符匹配的是地址&name2[1],输出结果 为kit.
return 0;
}
void test2()
{
// \0的ASCII码值是0
char name[8] = "it";//数组长度为8,使用了3个
char name2[8] = {'i','t','\0'};//字符串
char name3[8] = {'i','t',0}; //可以,字符串
char name4[8] = {'i','t'};//不是严格意义上字符串,但是后默认有6个0;
char name5[] = {'i','t'}; // 注意不是字符串,只能说是普通的字符数组,不能当做字符串使用。
}
void test()
{
printf("Jack\n");
char name[10] = "Jack";
printf("%s\n",name);
printf(name);// 把数组传入只是一个警告
printf("ewewf"); // 默认参数为常量
}
2、字符串函数strlen使用注意
/*
strlen函数: 计算字符串长度
1.计算的是字符数,并不是字数
2.计算的字符不包括\0
*/
//strlen函数声明在string.h文件中
#include <string.h>
#include <stdio.h>
int main()
{
//int size = strlen("haha");
//printf("%d\n",size );
/*
char name[] = "itcast";
int size = strlen(name);
printf("%d\n",size );// 6
char name2[] = "it\0cast";
int size2 = strlen(name2);
printf("%d\n",size2 );// 2
*/
char name[] = "itcast";
char name2[] = {'0','6'};
int size2 = strlen(name2);
printf("%d\n",size2 );// 8,因为strlen从name2地址开始数字符,直到遇到\0结束
char name[] = "itcast";
printf("%c\n",name[2]); //输出为a
}
3、二维数组的使用
char names[2][10]={"jack","rose"};
printf("%s\n",names[0]); //输出jack
printf("%c\n",names[0][3]);//输出k,注意不用地址符&
char name2[2][10]=
{
{'j','a','c','k','\0'},
{'r','o','s','e','\0'}
};
代码的编写注意点:可读性 —> 性能 -> 精简(重构)不是代码越少,性能越高