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';
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C语言之基础 1) C语言之简介 2) C语言之搭建开发环境 3) C语言之第一个简单程序的结构详解 4) C语言之书写规范和注释 5) C语言之数据类型 字符串和格式化输入输出 6) C语言之使用字符串 7) C语言之格式化输出 8) C语言之格式化输入 9) C语言之格式化输入输出整理 10) C语言之基本运算符 11) C语言之其他运算符 12) C语言之表达式和语句 循环语句 13) C语言之while循环语句 14) C语言之do-while循环语句 15) C语言之for循环语句 16) C语言之使用关系运算符和表达式 17) C语言赋值运算+=、-=、*=、/=、%= 18) C语言之循环嵌套 分支跳转 19) C语言之分支和跳转 if 20) C语言之分支和跳转 if-else 21) C语言之条件运算符 ?: 22) C语言之循环辅助手段:continue 和 break 23) C语言之分支和跳转 switch和break 24) C语言之分支和跳转 goto语句 25) C语言之字符输入/输出和输入确认 指针 26) C语言初识指针 27) C语言之指针的简单用法 28) C语言字符串指针详解 数组 29) C语言之定义数组 30) C语言之一维数组的使用 31) C语言之二维数组和多维数组 32) C语言之指向数组的指针 33) C语言之保护数组内容const的使用 34) C语言之指向多维数组的指针 函数 35) C语言之函数的定义和调用 36) C语言之定义带参数的函数 37) C语言之函数之形参和实参 38) C语言之函数之返回值和函数类型 39) C语言之指针做函数参数 40) C语言之数组做函数参数 41)c语言之递归 字符串字符串函数 42)c语言字符串I/O 43) C语言字符串输入/输出 44) C语言字符串处理函数 文件操作 45) C语言之文件是什么 46) C语言之用fopen() 打开文件,关闭文件 fclose() 47) C语言之getc() 和 putc 读写文件 48) C语言之文件结尾 49) C语言之fgets() 和 fputs() 50) C语言之文件内部指针 51) C语言之rewind() 52) C语言之随机存取 fseek() 和 ftell() 函数 53) C语言之fsetpos和fgetpos 54) C语言之fread() 和 fwrite() 函数 结构体和其他数据形式 55) C语言之结构体的定义和初始化 56) C语言之访问结构体成员 57) C语言之结构数组 58) C语言之结构体指针 59) C语言之结构体做函数参数 60) C语言之把结构体保存到文件 已更新至此 61)C语言之联合简介 62)C语言之枚举类型 63)C语言之函数和指针 位操作 64) C语言之二进制、位和字节 65)C语言之位运算 66)C语言之打开位 67) C语言之转置位及查看位 68) C语言之左移右移(大结局)

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值