C语言自学完备手册(25)——字符串(2)

版权声明: https://blog.csdn.net/lfdfhl/article/details/83060328

自定义View系列教程00–推翻自己和过往,重学自定义View
自定义View系列教程01–常用工具介绍
自定义View系列教程02–onMeasure源码详尽分析
自定义View系列教程03–onLayout源码详尽分析
自定义View系列教程04–Draw源码分析及其实践
自定义View系列教程05–示例分析
自定义View系列教程06–详解View的Touch事件处理
自定义View系列教程07–详解ViewGroup分发Touch事件
自定义View系列教程08–滑动冲突的产生及其处理


探索Android软键盘的疑难杂症
深入探讨Android异步精髓Handler
详解Android主流框架不可或缺的基石
站在源码的肩膀上全解Scroller工作机制


Android多分辨率适配框架(1)— 核心基础
Android多分辨率适配框架(2)— 原理剖析
Android多分辨率适配框架(3)— 使用指南


讲给Android程序员看的前端系列教程(图文版)
讲给Android程序员看的前端系列教程(视频版)
Android程序员C语言自学完备手册


版权声明


字符串数组概述

在上一节当中,我们说:字符串最适合存储于字符数组中。例如:

char str[4]=“ABC”;

既然用一维字符数组存储字符串,那么顺着这个思路就可以利用二维字符数组存储字符串数组

请看如下示例:

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int i;
    char cs[][6]={"Turbo","NA","DOHC"};
    for(i=0;i<3;i++){
        printf("cs[%d]=%s\n",i,cs[i]);
    }
    return 0;
}

结果如下:

cs[0]=Turbo
cs[1]=NA
cs[2]=DOHC

在该实例中用二维字符数组存储由字符串组成的数组cs。数组cs是3行6列的二维数组,元素类型为char[6]型,元素个数为3;其中,cs[0]表示“Turbo”,cs[1]表示“NA”,cs[2]表示“DOHC”;所以,在代码第9行使用cs[i]取出各字符串。请参见下图:
在这里插入图片描述

数组声明中初始值不足时,用0来初始化该元素;因此,各个字符串后面的空白部分都初始化为null字符。在该二维数组中各元素的位置由两个下标共同决定。例如:‘T’为cs[0][0]、'C’为cs[2][3]。

扫描二维码关注公众号,回复: 3808757 查看本文章

字符串数组的初始化及其遍历

在该实例中利用键盘输入初始化字符串数组并将其遍历打印,代码如下:

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int i;
    char cs[3][20];
    for(i=0;i<3;i++){
        printf("cs[%d]=",i);
        scanf("%s",cs[i]);
    }
    puts("变量结果如下:");
    for(i=0;i<3;i++){
        printf("cs[%d]=%s\n",i,cs[i]);
    }
    return 0;
}

结果如下:

cs[0]=zhangsan
cs[1]=lisi
cs[2]=wangwu
变量结果如下:
cs[0]=zhangsan
cs[1]=lisi
cs[2]=wangwu

利用scanf( )或者printf( )函数为数组元素赋值或者取出某个元素的值时均采用cs[i]而不是&cs[i]


字符串数组的参数传递

在函数之间传递字符串数组时通常需要两个参数:

  • 第一个参数:字符串数组
  • 第二个参数:字符串数组的长度

在此利用函数实现字符串数组的遍历,代码如下:

#include <stdio.h>
#include <stdlib.h>

//遍历字符串数组的方式一
void traversalString1(const char strArray[][6],int len){
    int i;
    for(i=0;i<len;i++){
        int j=0;
        printf("s[%d]=\"",i);
        while(strArray[i][j]){
            putchar(strArray[i][j++]);
        }
        puts("\"");
    }
}

//遍历字符串数组的方式二
void traversalString2(const char strArray[][6],int len){
    int i;
    for(i=0;i<len;i++){
        printf("s[%d]=%s\n",i,strArray[i]);
    }
}


int main()
{
    char strArray[][6]={"Turbo","NA","DOHC"};
    traversalString1(strArray,3);
    return 0;
}

猜你喜欢

转载自blog.csdn.net/lfdfhl/article/details/83060328