学习日记:一维字符型数组

目录

1. 格式

2. 字符串长度

3. 字符数组的输入输出

3.1 gets函数

3.2 puts函数

3.3 scanf函数

3.4 printf函数

4. 字符串处理函数

4.1 strlen函数(计算数组长度)

4.2 strcpy函数(复制字符串)

4.3 strcat函数(拼接字符串)

4.4 strcmp函数(比较字符串)


1. 格式

数据类型 数组名 [数组长度];

char s[20];
类型说明符 数组名[常量表达式];

2. 字符串长度

char s[] = "hello";        // s的长度 --- 数组的长度,为6.


char s[10] = "hello";      // s的长度 --- 数组的长度,为10


char s1[10];
gets(s1);
char s2[10];
s2 = s1;                // C语言中不能这样整体赋值

3. 字符数组的输入输出

3.1 gets函数

gets(s);

功能:从键盘输入一个字符串;

注:使用gets函数时需要注意越界风险,gets函数不会计入换行符。

3.2 puts函数

puts(s);

功能:输出一个字符串

注:puts函数自带换行符。

3.3 scanf函数

scanf("%s",s);

3.4 printf函数

printf("%s",s);

4. 字符串处理函数

4.1 strlen函数(计算数组长度)

#include<stdio.h>

int main(void)
{
    char s[20] = "hello";
    int i = 0;

    while(s[i] != '\0')
    {
        ++i;
    }
    printf("%d\n",i);
    return 0;
}

相当于:

strlen(s);

4.2 strcpy函数(复制字符串)

#include<stdio.h>

int main(void)
{
    char s1[20];
    char s2[20];
    int i = 0;

    gets(s1);
    while(s1[i]!='\0')
    {
        s2[i] = s1[i];
        ++i;
    }
    s2[i] = '\0';

    puts(s2);

    return 0;
}

相当于:

strcpy(s2,s1);
strcpy(目标数组,原数组);

4.3 strcat函数(拼接字符串)

#include<stdio.h>

int main(void)
{
    char s1[20] = "hello";
    char s2[20] = "world";
    int i = 0;
    int j = 0;

    while(s1[i]!='\0')          // 定位'\0'的位置
    {
        ++i;
    }

    while(s2[j] != '\0')
    {
        s1[i] = s2[j];          // 从s1'\0'的位置开始把s2的每个元素给到s1;
        ++i;
        ++j;
    }
    s1[i] = '\0';               // 加上\0使其成为字符串

    puts(s1);

    return 0;
}

这个函数可以实现strcat的功能,相当于:

strcat(s1,s2);
strcat(目标数组,原数组);

4.4 strcmp函数(比较字符串)

原理就是比较字符的ascii值,返回的是两个字符组首个不同字符的ASCII值的差值。

#include<stdio.h>

int main(void)
{
    char s1[20];
    char s2[20];
    gets(s1);
    gets(s2);
    int i = 0;

    while(s1[i]==s2[i] && s1[i]!='\0' && s2[i]!='\0')
    {
        ++i;
    }

    if(s1[i] > s2[i])
    {
        printf("s1 > s2\n");
    }else if(s2[i] > s1[i])
    {
        printf("s2 > s1\n");
    }else
    {
        printf("s1 = s2\n");
    }

    return 0;
}

这个函数是实现strcmp的功能,相当于:

#include<stdio.h>
#include<string.h>

int main(void)
{
    char s1[20];
    char s2[20];
    gets(s1);
    gets(s2);

    printf("%d\n",strcmp(s1,s2));
    return 0;
}

  • 17
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值