【C语言】第四十题→任意输入字符串实现逆序打印,不能使用C自带的字符串库函数。

93 阅读2分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第22天,点击查看活动详情

🚀write in front🚀

🔎大家好,我是泽奀,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎
🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝
✉️我们并非登上我们所选择的舞台,演出并非我们所选择的剧本📩
💬总结:希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🖊

前言

美好的一天从刷题开始,那么今天就来刷C题集的40题,准备好了没(。・∀・)ノ゙,准备好的扣一没准备好的扣眼珠子👁

题目描述

任意输入字符串实现逆序打印,不能使用C自带的字符串库函数。

题目分析

首先,我们创建一个函数来实现字符串当中的逆序打印,题目规定不能使用字符串当中库函数,那么本题目很有可能是会使用的但是不让我们去使用的库函数字符串函数,所以我们就必须要自己创建函数使用。
输入函数这里推荐大家去使用 gets() 函数,那我们来说说 gets() 输入函数 和 scanf() 输入函数的区别吧↓
**scanf():
**不能接受空格、制表符Tab、回车等; 当遇到回车,空格和tab键会自动在字符串后面添加'\0',但是回车,空格和tab键仍会留在输入的缓冲区中。 可以读取所有类型的变量。
**gets():
**能够接受空格、制表符Tab和回车等; 可接受回车键之前输入的所有字符,并用'\n'替代 '\0'.回车键不会留在输入缓冲区中 ,用到读取字符串,用回车结束输入。

题目代码

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<assert.h>
//2.模拟strlen()函数的使用
int my_strlen(char *str)
{
	int count = 0;
	while (*str != '\0')
	{
		*str++;
		count++;
	}
	return count;
}
//1.实现逆序打印
void print(char *str)
{
	assert(str != NULL);
	int left = 0;
	int right = my_strlen(str) - 1;
	while (left <= right)
	{
		char tep = str[left];
		str[left] = str[right];
		str[right] = tep;
		left++;
		right--;
	}
}
int main(void)
{
	char arr[20] = { 0 };
	puts("请输入字符串↓");
	gets(arr);
	print(arr);
	printf("逆序の字符串↓\n%s\n", arr);
	return 0;
}

运行结果

运行结果如下 👇
请输入字符串↓
8 Printf();
逆序の字符串↓
;)(tnirP 8 

最后

不知道你学会了没有,实际上这道题目比较考验一个字符串输入的使用。