字符数组和字符串

1、字符数组

        ● C 语言中没有专门的字符串变量,通常用一个字符数组来存放字符串;

char str[13] = {"www.csdn.net"};
//第二种更简洁
char str[13] = "www.csdn.net";
//或者也可以不指定数组长度
char str[] = "www.csdn.net";

        ● 字符数组只有在定义时才能将整个字符串一次性赋值,定义之后只能一个字符一个字符的赋值;

        ● C 语言中,字符串以 '\0' 作为结尾,ASCII 码表中英文称为 NUL,中文称为 空字符;

            该字符既不能显示,也没有控制功能,输出该字符没有任何效果;

            C 语言中该字符的唯一作用就是作为字符串结束标志;

2、C 语言中对于字符串的处理

        ● C 语言中用 scanf 函数读取数组或者字符串时,不用添加&,因为数组和字符串本身就会转换地址;

        ● C 语言在处理字符串时,会从前往后逐个扫描字符,遇到 '\0' 就认为到达了字符串的末尾,作结束处理;

        ● 由 " " 包围的字符串会自动在末尾添加 '\0' ;

        ● 逐个字符给字符数组赋值并不会自动添加 '\0' ,所以我们逐个字符存储字符串时,要为 '\0' 预留位子;

            也就是说,此时的数组长度要至少比字符串的长度大 1;

        ● 由于在很多编译器中,变量的初始值的随机的,是垃圾值,并不是我们通常认为的 " 零 " 值;

        ● 写代码的时候,尽量将数组初始化的时候将所有元素全部手动赋值为 0;

#include <iostream>

int main()
{
	//将数组所有元素初始化为0,避免因垃圾值带来的显示错误
	char str[50] = { 0 };
	//逐个将26个大写英文字母写入数组
	for (int c = 65, i = 0; c <= 90; c++, i++) 
	{
		str[i] = c;
	}
	//将字符数组作为字符串输出
    /*因为ASCII码表中'\0'的码值为0,所以所有字母输出完毕之后,编译器遇到0值,认为字符串结束,不再 
    输出字符数组中的其他剩余内容*/
	printf("%s\n", str);
	return 0;
}

3、strlen () 函数

        ● C 语言中,使用 string.h 头文件中的 strlen () 函数求字符串的长度;

            该函数求出的字符串长度不包含 '\0' ;

#include <iostream>
#include <string.h>

int main()
{
	char str[] = "www.csdn.net";
	printf("字符串的长度为:%d\n", strlen(str));
	return 0;
}

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值