C语言--数组与指针--打印字符串的n种方式


一.知识背景

一维数组名的含义

arr一般表示数组的起始地址(除了两种例外)

1.在定义数组的同一个函数中(不是形参),求sizeof(arr),求整个数组的字节数

2.在定义数组的同一个函数中(不是形参),&arr+1,加整个数组的大小 (经常考试)

3.除上面以外,arr都表示数组的起始地址(首元素的地址)

字符串的结束标志是\0 ,如果定义一个字符串char str[12]="hello world",再定义一个字符型指针变量保存str的地址,char*p=str,那么在循环中我们可以用**while(*p!='\0')**来控制循环条件

二.打印的思路

1.用%s整体直接打印字符串的

2.用%c一个字符串一个字符串打印(这里又分为通过下标移动打印和指针移动打印)

通过下标移动打印字符串

通过指针移动打印字符串


三.代码实现

方法一:

cpp 复制代码
#include<stdio.h>
int main()
{
	char str[12] = "hello world";
	printf("%s", str);
	
	return 0;
}

方法二:

cpp 复制代码
#include<stdio.h>
int main()
{
	char str[12] = "hello world";
	char* p = &str[0]; //char*p=str  ==>  p==str
	printf("%s\n", p); 
	return 0;
}

方法三:

cpp 复制代码
#include<stdio.h>
int main()
{
	char str[12] = "hello world";
	char* p = &str[0]; //char*p=str  ==>  p==str
	printf("%s\n", &str[0]);
	return 0;
}

方法四:

cpp 复制代码
#include<stdio.h>
int main()
{
	char str[12] = "hello world";
	for (int i = 0; i < strlen(str); i++)
	{
		printf("%c", str[i]);
	}

	return 0;
}

方法五:

cpp 复制代码
#include<stdio.h>
int main()
{
	char str[12] = "hello world";
	char* p = str;
	while(*p != '\0') 
	{
		printf("%c", *p);
		p++; //当指针所指向的内容不等于\0时,指针往后面走
	}
	return 0;
}

创作不易, 如果这份博客👍对你有帮助,可以给博主一个免费的点赞以示鼓励。

欢迎各位帅哥美女点赞👍评论⭐收藏⭐,谢谢!!!

如果有什么疑问或不同的见解,欢迎在评论区留言哦👀。

祝各位生活愉快⭐

相关推荐
黑听人7 小时前
【力扣 困难 C】329. 矩阵中的最长递增路径
c语言·leetcode
JeffersonZU8 小时前
Linux/Unix 套接字Socket编程(socket基本概念,流程,流式/数据报socket,Unix domain socket示例)
linux·c语言·tcp/ip·udp·unix·gnu
小小小新人121239 小时前
C语言 ATM (4)
c语言·开发语言·算法
无限远的弧光灯11 小时前
c语言学习_函数递归
c语言·开发语言·学习
小林C语言12 小时前
C语言 | 指针小结
c语言
黎明smaly14 小时前
【排序】插入排序
c语言·开发语言·数据结构·c++·算法·排序算法
LIN-JUN-WEI15 小时前
[ESP32]VSCODE+ESP-IDF环境搭建及blink例程尝试(win10 win11均配置成功)
c语言·开发语言·ide·vscode·单片机·学习·编辑器
艾莉丝努力练剑17 小时前
【C语言】学习过程教训与经验杂谈:思想准备、知识回顾(三)
c语言·开发语言·数据结构·学习·算法
黑听人17 小时前
【力扣 困难 C】115. 不同的子序列
c语言·leetcode
看到我,请让我去学习1 天前
OpenCV编程- (图像基础处理:噪声、滤波、直方图与边缘检测)
c语言·c++·人工智能·opencv·计算机视觉