【教材】2022/11/24 [指针] 通过指针引用字符串

本文介绍了在C语言中如何引用和操作字符串。通过字符数组和字符指针,可以访问和输出字符串。字符数组直接通过数组名和下标访问字符,或使用`%s`格式输出整个字符串。而字符指针则通过指针变量存储字符串首地址,从而引用字符串。强调了指针变量只能指向单个字符,不能直接存储字符串,并解释了`%s`在输出时如何逐字符遍历直到遇到``。

在c程序中,字符串是存储在字符数组中的,想引用一个字符数组,有以下两种办法:

(1)用字符数组存放一个字符串,可以通过数组名和下标引用字符串中一个字符,也可以通过数组名和格式声明“%s”输出该字符串。

程序:定义一个字符数组,输入该字符串和第8个字符

#include<stdio.h>
int main()
{
	char a[] = "I love China!";
	printf("%s\n", a);
	printf("%c\n", a[7]);//第八个字符位a[7]
	return 0;
}

a[7]实际上就是*(a+7),a+7是一个地址,指向字符‘c'

(2)用字符指针变量指向一个字符串常量,通过字符指针变量引用字符串常量。

程序:通过字符指针输出字符串

#include<stdio.h>
int main()
{
	char* string;
	string = "I love China!";
	printf("%s", string);
	return 0;
}

C语言对字符串常量是按字符数组处理的,在内存中开辟了一个字符数组用来存放该字符串常量,但是这个字符数组是没有名字的.因此不能通过数组名来引用,只能通过指针变量来引用。

对字符指针变量string初始化,实际上是把字符串第1个元素的地址(即存放字符串的字符数组的首元素地址)赋给指针变量string,使string指向字符串的第1个字符.

说明:有人误认为string是一个字符串变量,以为在定义时把"I love China!"这几个字符赋给该字符串变量,这是不对的。在C语言中只有字符变量,没有字符串变量。

实际上,char* string="hello“分为:char* string;string=”hello“;把字符串的第一个元素的地址赋给string,注意:string被定义为一个指针变量,基类型为字符型。请注意它只能指向一个字符类型数据,而不能同时指向多个字符数据,更不是把"hello"这些字符存放到string 中(指针变量只能存放地址),也不是把字符串赋给* string。只是把"hello"的第1个字符的地址赋给指针变量string。

先可以通过字符指针变量来输出它所指向的字符串,如printf("%s",string),%s是输出字符串时所用的格式符,在输出项中给出字符指针变量名string,则系统会输出string所指向的字符串第1个字符,然后自动使string加1,使之指向下一个字符,再输出该字符……如此直到遇到字符串结束标志’\0'为止

对于字符的存取,可以采用下标的方式或指针的方式:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值