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'}
}; 代码的编写注意点:可读性 —> 性能 -> 精简(重构)不是代码越少,性能越高
|