C语言之数组、字符串
来源:互联网 发布:易订货系统 源码 编辑:程序博客网 时间:2024/05/17 22:59
数组
一、数组的定义和赋值
int ages[5] = {19, 29, 28, 27, 26}; //每个元素占4个字节,整个数组的大小为4*元素个数5int ages[] = {19, 29, 28, 27, 26}; //定义数组可以不声明长度,后边大括号里的元素个数决定数组的长度int ages[‘A’] = {19, 29, 28, 27, 26} //’A’ == 65,所以这个数组的长度为65ages[0] = 29; //为某一个元素赋值或替换
二、数组的遍历
printf(“%d\n”, ages[0]); //取出某一个元素for(int i=0; i<5; i++){ printf(“ages[%d]=%d\n”, i, ages[i]); //逐个元素遍历}
三、计算数组的长度
int count = sizeof(ages)/sizeof(int);Eg:for(int i=0; i<count; i++){ printf(“ages[%d]=%d\n”, i, ages[i]);}
四、数组的内存细节
char cs[5] = {‘a’, ‘A’, ‘D’, ‘e’, ‘f’};
char数组内存如下:
1、数组的地址就是首个元素的地址
for(int =0; i<5; i++){ printf(“cs[%d]的地址是:%p\n”, i, &cs[i]);}
2、数组的名就是数组的地址
printf(“%p\n”, cs);int ages[3] = {10, 19, 18};printf(“%p\n”, ages);for(int i=0; i<3; i++){ printf(“ages[%d]的地址是:%p\n”, i, &ages[i]);}
Int数组内存如下:
五、数组作为形参
void method(int array[]) //数组作为形参无需声明数组长度{ array[0] = 100;}int main(){ int arr[] = {10, 20, 30, 40, 50}; method(arr); //数组名字作为实参传进函数时,相当于把数组的指针传入函数中,所以形参的地址和实参的地址是一个地址,所以改变同一块内存}
六、二维数组
int ages2[3][5] = { {10, 20, 30, 40, 50}, {10, 20, 30, 40, 50}, {10, 20, 30, 40, 50}};int ages2[2][1]; //访问第三个数组中第二个元素,即20
字符串
一、C语言是使用字符类型数组来实现字符串的
char name[10] = “jack”; //等同char name[] = “jack”;//等同char name[10] = {‘j’, ‘a’,‘c’, ‘k’, ‘\0’};//或char name[10] = {‘j’, ‘a’,‘c’, ‘k’, 0};//name数组长度为10,实际占了5个字节,分别为j、a、c、k、\0,\0的ASCII//码为0,可以使用ASCII码值代替字符printf(name); //printf默认只接收常量字符串,放变量编译会警告,但可以通过char name2[] = {‘i’, ‘t’}; //不能当作字符串来用,因为没有结束符号\0,所以这只是一个字符类型数组
二、输出字符串
int main(){ char name[] = “itcast”; printf(“我在%s上课\n”, name);}
三、修改字符串中的某一位字符
char name[] = “itcast”; //等同char name[] = {‘i’, ‘t’, ‘c’, ‘a’, ‘s’, ‘t’, ‘\0’};name[3] = ‘H’;
四、\0的作用
\0是字符串结尾的标示符
int main(){ char name[] = “it”; //字符串 char name2[] = {‘o’, ‘k’}; //这仅仅是一个字符数组,因为没有结束符号”\0”或0 printf(“%s\n”, name); //输出的是it (name作为字符串传给函数printf) printf(“%s\n”, name2); //输出的是okit (name2作为数组指针传给printf函数,printf函数中规定输出字符串,遇到”\0”结束输出)原因见下图,内存示意}
如上图内存示意图可知,从地址ffc4开始输出,一直到ffc8结束
如果name字符串中含有字符”\0”,比如name为”itc\0ast”,那么printf(“%s\n”, name2);会输出okitc,遇到第一个”\0”结束输出。
五、strlen函数
包含于头文件#include <string.h>中
strlen 区别于 sizeof,因为strlen不计算\0,而sizeof计算\0
strlen计算的是不带\0的字符数,sizeof计算的是带\0的字节数
#include <string.h>#include <stdio.h>int main(){ int size = strlen(“haha”); printf(“%d\n”, size); //输出为4 return 0;}int main(){ char name[] = “itca\0st”; int size = strlen(name); printf(“%d\n”, size);<pre name="code" class="csharp"><span style="font-family: 宋体;"> return 0;</span>}上面的代码输出的是4,所以可以看出strlen()函数的原理是从数组name的地址开始计算到\0结束的长度
六、输出字符串中某一个字符
int main(){ char name[] = "itcast"; printf("%c\n", name[4]); //输出为s,字符串就是一个字符数组,最后一位为”\0”}
七、字符串数组
#include <string.h>#include <stdio.h>/* 字符串数组即字符型二维数组 */int main(){ char name1[] = "jack"; char name2[] = "rose"; char names[2][10] = {"jack", "rose"}; //等同于下边的写法 /* char names[2][10] = { {'j', 'a', 'c', 'k', '\0'}, {'r', 'o', 's', 'e', '\0'} } */ printf("%s\n", names[1]); //输出第二个字符串 return 0;}
0 0
- C语言之数组、字符串
- C语言之字符串,数组
- C语言基础之数组、字符串、指针
- C语言之数组和字符串
- C语言 之 字符串(数组)
- 小小C语言之数组与字符串
- C语言系列之C语言如何返回字符串数组
- C语言之字符串、字符数组,字符串函数
- iOS开发之--C语言之数组和字符串
- C语言中的指针之数组和字符串
- IOS开发系列--C语言之数组和字符串
- 黑马程序员-------c语言学习笔记之数组与字符串
- iOS开发系列--C语言之数组和字符串
- IOS开发系列--C语言之数组和字符串
- ioS开发之c语言基础-多维数组,字符串
- C语言之_数组字符串和指针
- mook网c语言入门之数组,字符串
- 关于C语言字符串数组
- android 广播的使用(自用)
- C++1 入门
- 移动音视频IM的发展
- No more handles [Unknown Mozilla path (MOZILLA_FIVE_HOME not set)]
- 求绝对值
- C语言之数组、字符串
- 我要跳一下,先完成结构体
- 手机端的音视频监控系统开发
- hello csdn
- FTP的PORT和PASV的连接方式以及数据连接端口号计算
- Apache commons 之 Collections :Iterator
- 从C开始_结构体_
- 如何使整数与小数相乘后结果为小数
- eclipse下使用Genymotion调试Android程序出现的问题