• 字符数组


    #include "stdafx.h"
    #include "iostream"
    
    int _tmain(int argc, _TCHAR* argv[])
    {
        char a[3][5]={};
        for(int i=0;i<=2;i++)
        {
            gets(a[i]);
        }
        for(int i=0;i<=2;i++)
        {
            puts(a[i]);
        }
        
        system("pause");
        return 0;
    }

    1.以上是二维数组的输入与输出//  输入时要注意分行输入

    2.对于一维字符数组,有以下几种方法:char a[12];

    (1)scanf("%s",str);//识别空格作为字符串的结尾;即若输入hag jhg 则只输出hag;

    (2)getchar 逐个对元素赋值;//可以识别  ' ' ,

    (3)gets(a);//遇换行符结束,即一按回车就结束,自动在字符串末尾加上  ''

    (4)char *b;   b=a;  scanf("%s",a);  // 借助字符指针变量实现对数组的赋值;

    (5)借助字符串函数strcpy strcpy(a,"iosjhaksjyd");要为'’预留空位 否则中断 因为“iosjhaksjyd”是由系统分配内存的 对于字符串常量系统自动在其后加‘’

    输出均可用printf("%s",a);

    其次有for循环可输出

    for(int i=0;i<=11;i++)

    {

    printf("%c",a[i]);

    }

     3.字符串的结束 ‘’(在c语言中,是将字符串作为字符数组来处理的)

    对字符数组初始化时,若是依次赋值

    如果提供的初值个数与预定的数组长度相同,此时没有‘’

    如果提供的初值个数小于预定的数组长度,那么系统自动添上‘’

    如果数组没有定义长度,则‘’需自己添加

    (字符数组并不要求它的最后一个字符为‘’,甚至可以不包含‘’)

    4.使用字符指针变量和字符数组的比较

    (1)字符数组存放的是字符 字符指针变量存放的是地址(字符串的首地址)

    (2)可以对字符指针变量赋值 但不能对数组名赋值

    char *a;

    a="i love china";//char str[14]; str="i love china";(错误 数组名是地址,是常量,不能被赋值,非法)

    (4)编译时系统为字符数组分配若干个存储单元,存放各元素的值,而对字符指针变量,只分配4个字节存放指针变量(VC++)

    char *a;

    scanf("%s",a);(错误 未指明指针指向,可能破坏程序或有用数据,甚至是破坏了系统)

    char *a,str[10];

    a=str;

    scanf("%s",a);(正确 指针有了明确的指向)

    (5)指针变量的值是可以改变的 而字符数组名代表一个固定的值(数组首元素的地址),不能改变

  • 相关阅读:
    数据结构算法(3)--排序
    数据结构算法(2)--字符串匹配
    数据结构与算法(0)-四则运算
    数据结构算法(1)--递归转化
    高级软件工程实践总结
    beta冲刺随笔集合
    Beta冲刺-用户测试报告
    Beta冲刺总结
    SDN期末作业-负载均衡的实现
    SDN第六次作业
  • 原文地址:https://www.cnblogs.com/kinghyt/p/10084411.html
Copyright © 2020-2023  润新知