C语言之初识字符串

1. 字符串介绍

  • 存放字符(char)的数组称为字符数组。
  • 在C语言中,使用NULL(’\0’)字符终止的一维字符数组被称作字符串。
  • 字符串的各个元素为字符,并且各个字符时依次存放的。
  • 字符串的变量名代表该数组的首地址。

2. 使用方法

2.1 定义方法

char 字符串变量名[字符数量]

2.2 初始化方法有两种

(1)可以按照普通数组方式初始化

char 字符串变量名[字符数量] = {字符1,字符2,....,'\0'};

如:

char str[6] = {'H','e','l','l','o','\0'};

(2)使用字面量直接进行字符串的初始化

char 字符串变量名[] = 字符串字面量;

如:

char str[6] = “Hello”;//或者char str[] = “Hello” ;

注意 :
(1)字符串的最后一个字符必须是“\0”,在初始化时要注意给"\0"预留空间。
(2)通过字面量初始化过的字符串是不能更改的,而普通的初始化方法初始化的字符串是可以更改的。

2.3 输入输出

字符串的输入输出使用的函数为:scanf()printf(),占位符为 %s

#include <stdio.h>

int main(){
    char str[10];
    printf("请输入字符串:");
    scanf("%s",str);
    printf("您输入的字符串为:%s\n",str);
}

2.4 字符串的访问

  • 字符串的访问与数组的访问方式一样,通过下标/索引方式访问,通过字符数组的名字+索引的方式可以实现对字符数组的访问及修改。
    在这里插入图片描述
字符数组名[索引]

例如:

// 打印索引为[0]的字符
printf("%c\n", str[0]);

// 修改索引为[1]的字符
str[1] = 'F';

// 打印修改后的字符串
printf("%s\n",str[1]);

2.5 字符串的遍历

  • 基本方法:使用for循环对字符数组进行遍历
#include <stdio.h>
int main(){
    //char str[6] = {'H','e','l','l','o','\0'};
    char str[] = "Hello";
    for (int i=0; '\0' != str[i]; ++i)
    { // 依次生成字符数组索引
        printf( "%c\n",str[i]); // 访问数组的每一个字符,访问单个字符使用%c
    }
    printf( "%s\n",str); //,访问整个字符数组的占位符使用%s
}

2.6 赋值

(1)使用遍历方式给字符数组赋值

#include <stdio.h>
int main(){
    char str1[] = "Hello";
    char str2[6];
    for (int i=0; i<6; ++i){
        str2[i] = '\0';
    }
    for (int i=0; '\0' != str1[i]; ++i)
    { // 按照字符数组索引赋值给新的字符数组
        str2[i] = str1[i];
    }
    printf( "%s\n",str2);
}

(2)使用 strcpy() 函数给字符数组赋值

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

int main(){
    char str1[] = "Hello";
    char str2[6];
    strcpy(str2,str1);
    printf( "%s\n",str2);
}

注意:

  • 字符数组不能使用赋值符号(=)进行直接赋值
  • 在使用遍历的方式对字符数组进行赋值时,被赋值的字符数组的长度要大于原始的字符数组的长度,否则赋值后就会出错;
  • 当两个字符数组的长度相等时,需要先对被赋值的字符数组进行初始化,对于未初始化的字符数组赋值后容易出现错误;
  • 字符串的结尾是’\0’;
  • 有些时候,字符串声明时没有初始化,这时字符串里的值是随机值。需要手动赋值。赋值方式如下所示:
    char str2[6];
    for (int i=0; i<6; ++i){
        str2[i] = '\0';
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值