C++ 初学者指南 第四篇(8)

必备技能 4.7: 字符串数组
     一种特殊的二维数组就是字符串数组。在程序中使用字符串构成的数组并不罕见。比如在需要访问数据库的程序中,输入进程需要使用字符串数组来对用户键入的命令进行有效性验证。我们使用二维的字符数组来创建字符串数组。其中的左索引用来表示字符串的数量,右索引用来表示字符串的最大长度。包括字符串结束标志。例如,下面的代码片段声明了30个字符串的数组,每个字符串的最大长度维79,在加上一个结束表示共计为80。
char str_array[30][80];
对其中每一个单独字符串的访问是很简单的:我们只需要指定左索引即可。例如,下面gets()函数就用到了str_array的第三个字符串:
gets(str_array[2]);
访问第三个字符串的每个字符,我们可以使用如下的语句:
cout << str_array[2][3];
上面的语句把第三个字符串的第四个字符打印出来。
    下面的程序通过实现一个简单的电话本功能来演示字符串数组的使用。二维数组numbers用来存储姓名和电话号码。查找电话号码时,输入姓名,程序会输出对应的电话号码。

//一个简单的电话本程序
#include <iostream>
#include <cstdio>

using namespace std;

int main()
{
    int i;
    char str[80];
    char numbers[10][80] =
    {
        "Tom","555-3322",
        "Mary","555-8976",
        "Jon","555-1037",
        "Rachel","555-1400",
        "Sherry","5558873"
    };

    cout << "Enter name: ";
    cin >> str;

    for ( i = 0; i < 10 ; i+=2 )
    {
        if (!strcmp(str, numbers[i] ))
        {
            cout << "Number is " << numbers [i+1] << "\n";
            break;
        }
    }

    if ( i == 10 )
    {
          cout << "Not found.\n"; 
    }

    return 0;
}

可能的输出结果如下:
Enter name: Jon
Number is 555-1037
     注意在上面的for循环中循环控制变量的变化是每次递增2。这样作是非常有必要的,因为数组中的姓名和电话号码是交替出现的。
练习:
1. 写出如何用1,2,3,4来初始化一个有四个元素的整型数组。
2. 重写下面的初始化: char str[6]={‘H’, ‘e’, ‘l’, ‘l’, ‘o’, ‘\0’};
3. 用未指定大小数组的方式重新下面的代码:int nums[4]={44,55,66,77};

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值