字符数组的讲解

输入一个由5个字符组成的单词,将其内容颠倒过来

#include<stdio.h>
int main()
{
    char ch[5];
    int i,j,k;
    for(i=0;i<5;i++)
    {
        ch[i]=getchar();
    }
    for(i=0,j=4;i<j;i++,j--)
    {
        k=ch[i];
        ch[i]=ch[j];
        ch[j]=k;
    }
    for(i=0;i<5;i++)
    {
        printf("%c",ch[i]);
    }
    return 0;
}

编写程序,用于合并两个已知的数组。

#include<stdio.h>
int main()
{
    //char ch1[]={'g','o','o','d',' '};
    char ch1[]={"good"};
    char ch2[]={'l','u','c','k','y'};
    char ch3[10];
    int i;
    for(i=0;i<5;i++)
    {
        ch3[i]=ch1[i];
    }
    for(i=0;i<5;i++)
    {
        ch3[5+i]=ch2[i];
    }
    for(i=0;i<10;i++)
    {
        printf("%c",ch3[i]);
    }
    printf("\n");
    return 0;
}
    char ch1[]={'g','o','o','d'};
    char ch1[]={"good"};

这两个字符数组是不一样的,虽然输出的结果一样,但是第一个字符数组长度为4,第二个长度为5,因为长度为5的是用字符串作为初值,字符数组的长度是字符串长度加上结束符。

当字符数组中存储的字符不是以’\0’结束时,只能像普通数组那样,用格式符”%c”一个元素一个元素的处理
例如:

char ch[5];
    int i;
    for(i=0;i<5;i++)
    {
        scanf("%c",&ch[i]);
    }
    for(i=0;i<5;i++)
    {
        printf("%c",ch[i]);
    }

如果字符数组中存储的字符以’\0’结束的,也可以像普通数组那样,一个元素一个元素的处理。

char ch[]="hello";
    int i;
    for(i=0;ch[i]!='\0';i++)
    {
        printf("%c",ch[i]);
    }

当用字符数组处理字符串时,可以用”%s”格式字符配合,完成字符的输入输出。
输出字符串:

    char ch[]="I love china";
        printf("%s",ch);

1、在使用scanf函数输入字符串时,“地址”部分应该直接写字符数组的名字,而不是取地址运算符&,在C语言中,数组名字代表该数组的起始地址。
2、在输出字符串时,输出项也为数组名,不能是数组元素。
3、利用格式符”%s”输入的字符串,以“空格”“tab”间隔多个字符,“回车”结束输入。
4、当字符数组长度大于字符串实际长度时,也只输出到’\0’结束。
5、如果字符数组中包含多个’\0’,遇到第一个’\0’时,输出结束。
例如:

    char ch[]="hello\0handsome";
        printf("%s",ch);
        输出结果为:hello

6、scanf函数“%s”格式输入一个字符串时,函数中输入项用数组名,并且该数组已定义,而且输入字符串的长度应该小于数组长度。
例如:

    char ch[10];
        scanf("%s",ch);
        数组长度为10,最多输入9个字符。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值