【学习笔记】【C语言】字符串数组
2015-06-23 23:51
423 查看
1.使用场合
* 一维字符数组中存放一个字符串,比如一个名字char name[20] = "mj"
* 如果要存储多个字符串,比如一个班所有学生的名字,则需要二维字符数组,char names[15][20]可以存放15个学生的姓名(假设姓名不超过20字符)
* 如果要存储两个班的学生姓名,那么可以用三维字符数组char names[2][15][20]
2.初始化
char names[2][10] = { {'J','a','y','\0'}, {'J','i','m','\0'} };
char names2[2][10] = { {"Jay"}, {"Jim"} };
char names3[2][10] = { "Jay", "Jim" };
3.代码
注意
* 一维字符数组中存放一个字符串,比如一个名字char name[20] = "mj"
* 如果要存储多个字符串,比如一个班所有学生的名字,则需要二维字符数组,char names[15][20]可以存放15个学生的姓名(假设姓名不超过20字符)
* 如果要存储两个班的学生姓名,那么可以用三维字符数组char names[2][15][20]
2.初始化
char names[2][10] = { {'J','a','y','\0'}, {'J','i','m','\0'} };
char names2[2][10] = { {"Jay"}, {"Jim"} };
char names3[2][10] = { "Jay", "Jim" };
3.代码
#include <stdio.h> int main() { //char name[] = {'i', 't', 'c', 'H', 's', 't', '\0'}; char name[] = "itcast"; name[3] = 'H'; /* int size = sizeof(name); printf("%d\n", size); */ printf("我在%s上课\n", name); return 0; } // 字符串的一个初始化 void test2() { // \0的ASCII码值是0 // 都是字符串 char name[8] = "it"; char name2[8] = {'i', 't', '\0'}; char name3[8] = {'i', 't', 0}; char name4[8] = {'i', 't'}; // 不算是一个字符串(只能说是一个字符数组) char name5[] = {'i', 't'}; } /* void test() { // 'a' 'b' 'A' // "jack" == 'j' + 'a' + 'c' + 'k' + '\0' char name[10] = "jack888\n"; // 把数组传入,仅仅是个警告 printf(name); printf(name); printf(name); printf("57843578435"); }*/
注意
#include <stdio.h> /* \0的作用 1.字符串结束的标记 2.printf("%s", name2); 会从name2这个地址开始输出字符,直到遇到\0为止 */ int main() { char name[] = "itc\0ast"; char name2[] = {'o', 'k'}; //printf("%s\n", name2); printf("%s\n", &name2[1]); return 0; }
相关文章推荐
- C语言复杂声明,指令函数
- C语言-选择排序
- c语言里NULL的理解
- C语言学习-函数和递归函数
- 【读书笔记:C++ primer plus 第六版 中文版】第10章 对象和类
- 黑马程序员--汉诺塔问题的递归求解C语言
- OC语言学习1
- 建造者模式——探索之旅
- 抽象工厂模式——探索之旅
- 漫谈C语言随机数
- 装饰者模式——探索之旅
- C语言压缩/解压缩
- C++ 约瑟夫环问题
- C++ rand,srand用法
- 【读书笔记:C++ primer plus 第六版 中文版】第9章 内存模型和名称空间
- 学渣学C++遇到的一些函数
- 学渣学C++的一些问题及tips
- C语言-求数字阶乘(递归函数)
- 组合模式——探索之旅
- 黑马程序员--C语言scanf()和gets()区别。